שלח תשובה

זירת השאלות

526
צפיות
17
תשובות

בעיה ב-ASP Upload

,‏ 19 באוגוסט, 2005

עשיתי טופס עם אפשרות להעלאת קבצים וגם טקסט רגיל.
אני רוצה שרק אם ילחצו על כפתור upload אז הוא יעלה את הקבצים. אם לא שפשוט ירשום את הטקסט שבתיבות טקסט.
אז כדי לבדוק אם רוצים להעלות רשמתי:


if not isempty(request.form("upload")) then
Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.SaveVirtual "uploads/"


אבל הבעיה זה שהוא אומר:

Wrong Content-Type. Make sure you have included the attribute ENCTYPE="multipart/form-data" in your form


ואני כן רשמתי את זה… מה הבעיה?

תגיות:

17 תשובות

  1. ronron הגיב:

    ….
    אני עשיתי ב ASP.NET ….צריך לרשום את זה בתוך התג של FORM כך:
    <form id="Form1" method="post" encType="multipart/form-data" runat="server">

  2. PhoenixBoy הגיב:

    עוד בעיה ב-ASP Upload
    כשאני מנסה להעלות את הקובץ אני מקבל את השגיאה הבאה:

    Object required: 'File

    זה הקוד שרשמתי:

        Set Upload = Server.CreateObject("Persits.Upload.1")
        Upload.IgnoreNoPost = True
        Upload.SaveVirtual "/uploads/"

         Set File = Upload.Files("filetarget")

        Filename = File.Filename

    השגיאה בשורה האחרונה.
    מה הבעיה?

  3. PhoenixBoy הגיב:

    הבעיה הראשונה חזרה…
    הבעיה שרשמתי בהודעה הראשונה חזרה.. בבקשה תעזרו לי….

  4. BuildHome הגיב:

    נסה לעשות את זה בלולאה
    for each למשל. תנסה לבדוק בלולאה את הערך של השדות ותראה אם הערך של השדה שאתה מנסה לשלוף קיים בלולאה.

  5. BuildHome הגיב:

    קצת קוד רלוונטי יעזור
    מהי שורת ה-FORM שלך?

  6. PhoenixBoy הגיב:

    עכשיו יש בעיה שהוא לא מזהה אם הכפתו
    אם הכפתור נלחץ…
            <input type=submit name="openhtml" value="ôúç HTML" onclick="this.form.openhtml.value='ok'">

        if Upload.form("openhtml")="ok" Then

    איך אני אסדר את זה?

  7. PhoenixBoy הגיב:

    הנה הבעיה המרכזית:
    זה הקוד:


    <%
    Set Upload = Server.CreateObject("Persits.Upload.1")
        If not isempty(Upload.Form("send")) Then
            response.write Upload.Form("send") & "<br>"
            response.write "OKKKK"
        End If
        If Upload.Form("sfda")="ok" Then
            response.write Upload.Form("sfda") & "<br>"
            response.write "sfda"
        End If
        If not isempty(Upload.Form("sfd")) Then
            response.write Upload.Form("sfd") & "<br>"
            response.write "sfd"
        End If
    %>
    <form method=post name=form  ENCTYPE="multipart/form-data">
    <input type=text name=1 value=2141>
    <br>
    <input type=submit name=send>
    <input type=submit name=sfda onclick="this.form.sfda.value='ok'">
    <input type=submit name=sfd>
    </form>

    תבדקו אותו ותראו שהוא לא קולט את sfda… בבקשה תעזרו לי…

  8. BuildHome הגיב:

    מה הפלט המתקבל בעמוד
    לאחר שליחת הטופס?

    נסה להדפיס את הערכים של כל השדות בטופס (אפילו בלולאה) כולל את של השדה שמכיל את הערך 2141 (בלי תנאים).

  9. PhoenixBoy הגיב:

    טוב אז זאת השאלה האחרונה כנראה:
    איך אני עושה שאם הסיומת של הקובץ היא html אז הקובץ ישמר בתיקיית html ואם הסיומת jpg אז הוא ישמר בתיקיית images?
    אני משתמש ב SaveVirtual.

  10. BuildHome הגיב:

    תבדוק את סיומת
    הקובץ שאתה מעלה ולפי הסיומת תשמור את הקובץ בתקיה הנכונה.
    If LCase(File.Ext)=".jpg" Then
       File.SaveAs Server.MapPath("images/")&File.FileName
    ElseIf LCase(File.Ext)=".html" Then
       File.SaveAs Server.MapPath("html/")&File.FileName
    End If

  11. PhoenixBoy הגיב:

    יש בעיה תסתכלו:
    זה הקוד:


    Set Upload = Server.CreateObject("Persits.Upload.1")
    Upload.SaveToMemory

    Set File1 = Upload.Files("FILE1")
    FileExt = Lcase(File1.Ext)
    if FileExt <> ".bwp" AND FileExt <> ".html" AND FileExt <> ".htm" then
    response.write "<div class=text align=center><b>ñåâ ä÷åáõ ùäåòìä – ìà îåøùä</b></div>"
    response.end
    Set Upload = Nothing
    Else
    OkForProcess="OK"
    End If

    If OkForProcess="OK" Then

    Set UploadFilesOk = Upload.Files("FILE1")
    if FileExt=".html" OR FileExt=".htm" Then
    response.write "Open HTML"

    Upload.OverwriteFiles = False
    Upload.SaveVirtual "uploads/html/"

    Set uploaded = Upload.Files("filetarget")

    Filename = uploaded.Filename

    set fs = Server.CreateObject("scripting.filesystemobject")
    set f =
    fs.opentextfile("D:inetpubvhostswserv.co.ilsubdomainsbwphttpdocsuploadshtml"; &
    Filename)
    FinishCode = f.readall

    End IF
    End If

    אל תתיחסו לג'יבריש….
    בכל מקרה אני מקבל הודעת שגיאה:

    Persits.Upload.1 error '800a003e'

    Save method must not be called more than once.

    מה הבעיה?

  12. BuildHome הגיב:

    תשובה
    כתבת Upload.SaveVirtual מעל לפעם אחת.

    בפעם השניה אתה צריך להשתמש ב-SaveAs.

  13. PhoenixBoy הגיב:

    אני לא יכול
    השרת שלי לא תומך בזה… איך אני יכול לבדוק את הסיומת בלי לשמור את הקובץ בכלל? אתה יכול לתקן לי את הקוד ככה שישתמש קר ב-SaveVirual כדי לשמור את הקבצים בתיקיה המתאימה? כי השרת של לי תומך ב- SaveAs. וגם לא ב-Open.

  14. BuildHome הגיב:

    תשובה
    נסה עם SaveAsVirtual:
    File.SaveAsVirtual "/images/" & File.FileName

  15. PhoenixBoy הגיב:

    לא קיים דבר כזה…
    Microsoft VBScript runtime  error '800a01b6'

    Object doesn't support this property or method: 'SaveAsVirtual'

    מה אני אעשה?

  16. PhoenixBoy הגיב:

    זאת השגיאה שאני מקבל:
    Microsoft VBScript runtime  error '800a01a8'

    Object required

שלח תשובה