605
צפיות
צפיות
6
תשובות
תשובות
אובייקט STREAM
התחלתי ללמוד על אובייקט STREAM ועשיתי קוד פשוט:
<%@ codepage=1255 language="JavaScript" %>
<%
var oStr = Server.CreateObject("ADODB.Stream");
var source=Server.MapPath("\avl2")
var mode=1;
oStr.Open(source);
Response.Write("yes, path="+source)
%>
השורה הבעייתית היא השורה המודגשת.
אני הבנתי שהפרמטר הראשון צריך להיות הכתובת אז השתמשתי ב-mapPath משום מה זה מחזיר לי את השגיאה הזו:
ADODB.Stream error '800a0bb9'
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
יש למישהו ניסיון עם האובייקט ויוכל לומר לי מה הטעות שעשיתי ?
6 תשובות
אני חושב
יכול להיות שני דברים:
1)
var oStr = Server.CreateObject("ADODB.Stream");
אני לא זוכר ממש ב ASP אם צריך ; או לא צריך,אני מניח שלא
2)
אם צריך לשים ; אז לא שמתה ב var source=Server.MapPath("\avl2") את התו ;
דבר שלישי שעכשיו צצץ לי,יכול להיות שזה משהוא דפוק ב \avl2 (אלא אם כן זה משהוא מוכן).
עזוב
קראתי קצת והבנתי שצריך לשים רקורדסט ולא כתובת
אז כנראה שקראת לא נכון.
האובייקט ADODM.Stream מאפשר שליחת קבצים באופן בינארי אל הדפדפן. כשאתה משתמש בשיטת ה – BinaryWrite אתה בעצם גורם להורדת הקובץ. כל שעליך לעשות זה להזין את סוג התשובה שאתה רוצה לקבל:
Response.ContentType = "application/x-msexcel";
במקרה הזה, כפי שאפשר לראות, התשובה תיהיה קובץ EXCEL (וגם את תקשר אותו לקובץ אחר, לדוגמא ZIP, הוא עדיין ישמור לך אותו כ EXCEL).
הקוד המלא:
Response.ContentType = "application/x-msexcel";
var strFilePath;
strFilePath = Server.MapPath("x.xls");
var objStream = Server.CreateObject("ADODB.Stream");
objStream.Open();
objStream.Type = 1;
objStream.LoadFromFile(strFilePath)
Response.BinaryWrite(objStream.Read);
objStream.Close();
objStream = null
delete objStream;
ועוד הערה:
במקרה שלא יקבע ContentType הוא פשוט יראה לך את הנתונים בצורה בינארית בדפדפן (כאילו אתה פותח את הקובץ עם NotePad). מה שזה בגדול אומר זה שקבצי HTML הוא יציג כרגיל.
וגם
סוגי תשובות נפוצות:
<% Response.ContentType = "text/HTML" %>
<% Response.ContentType = "application/x-cdf" %>
<% Response.ContentType = "image/GIF" %>
<% Response.ContentType = "image/JPEG" %>
<% Response.ContentType = "text/plain" %>
<% Response.ContentType = "application/vnd.ms-powerpoint" %>
<% Response.ContentType = "application/x-msexcel" %>
ברירת המחדל היא
<% Response.ContentType = "text/HTML" %>
אני שאלתי לגבי הפרמטר הראשון של
השיטה OPEN
ותודה על ההסבר