שלח תשובה

זירת השאלות

391
צפיות
6
תשובות

אובייקט STREAM

,‏ 6 ביולי, 2004

התחלתי ללמוד על אובייקט 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. jonatan44 הגיב:

    אני חושב
    יכול להיות שני דברים:
    1)
    var oStr = Server.CreateObject("ADODB.Stream");
    אני לא זוכר ממש ב ASP אם צריך ; או לא צריך,אני מניח שלא
    2)
    אם צריך לשים ; אז לא שמתה ב var source=Server.MapPath("\avl2") את התו ;

    דבר שלישי שעכשיו צצץ לי,יכול להיות שזה משהוא דפוק ב \avl2 (אלא אם כן זה משהוא מוכן).

  2. ניר טייב הגיב:

    עזוב
    קראתי קצת והבנתי שצריך לשים רקורדסט ולא כתובת

  3. אוריקס הגיב:

    אז כנראה שקראת לא נכון.
    האובייקט 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;

  4. אוריקס הגיב:

    ועוד הערה:
    במקרה שלא יקבע ContentType הוא פשוט יראה לך את הנתונים בצורה בינארית בדפדפן (כאילו אתה פותח את הקובץ עם NotePad). מה שזה בגדול אומר זה שקבצי HTML הוא יציג כרגיל.

  5. אוריקס הגיב:

    וגם
    סוגי תשובות נפוצות:


    <% 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" %>

  6. ניר טייב הגיב:

    אני שאלתי לגבי הפרמטר הראשון של
    השיטה OPEN
    ותודה על ההסבר

שלח תשובה