526
צפיות
צפיות
17
תשובות
תשובות
בעיה ב-ASP Upload
עשיתי טופס עם אפשרות להעלאת קבצים וגם טקסט רגיל.
אני רוצה שרק אם ילחצו על כפתור 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 תשובות
….
אני עשיתי ב ASP.NET ….צריך לרשום את זה בתוך התג של FORM כך:
<form id="Form1" method="post" encType="multipart/form-data" runat="server">
עוד בעיה ב-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
השגיאה בשורה האחרונה.
מה הבעיה?
הבעיה הראשונה חזרה…
הבעיה שרשמתי בהודעה הראשונה חזרה.. בבקשה תעזרו לי….
נסה לעשות את זה בלולאה
for each למשל. תנסה לבדוק בלולאה את הערך של השדות ותראה אם הערך של השדה שאתה מנסה לשלוף קיים בלולאה.
קצת קוד רלוונטי יעזור
מהי שורת ה-FORM שלך?
עכשיו יש בעיה שהוא לא מזהה אם הכפתו
אם הכפתור נלחץ…
<input type=submit name="openhtml" value="ôúç HTML" onclick="this.form.openhtml.value='ok'">
if Upload.form("openhtml")="ok" Then
איך אני אסדר את זה?
הנה הבעיה המרכזית:
זה הקוד:
<%
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… בבקשה תעזרו לי…
מה הפלט המתקבל בעמוד
לאחר שליחת הטופס?
נסה להדפיס את הערכים של כל השדות בטופס (אפילו בלולאה) כולל את של השדה שמכיל את הערך 2141 (בלי תנאים).
טוב אז זאת השאלה האחרונה כנראה:
איך אני עושה שאם הסיומת של הקובץ היא html אז הקובץ ישמר בתיקיית html ואם הסיומת jpg אז הוא ישמר בתיקיית images?
אני משתמש ב SaveVirtual.
תבדוק את סיומת
הקובץ שאתה מעלה ולפי הסיומת תשמור את הקובץ בתקיה הנכונה.
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
יש בעיה תסתכלו:
זה הקוד:
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.
מה הבעיה?
תשובה
כתבת Upload.SaveVirtual מעל לפעם אחת.
בפעם השניה אתה צריך להשתמש ב-SaveAs.
אני לא יכול
השרת שלי לא תומך בזה… איך אני יכול לבדוק את הסיומת בלי לשמור את הקובץ בכלל? אתה יכול לתקן לי את הקוד ככה שישתמש קר ב-SaveVirual כדי לשמור את הקבצים בתיקיה המתאימה? כי השרת של לי תומך ב- SaveAs. וגם לא ב-Open.
תשובה
נסה עם SaveAsVirtual:
File.SaveAsVirtual "/images/" & File.FileName
לא קיים דבר כזה…
Microsoft VBScript runtime error '800a01b6'
Object doesn't support this property or method: 'SaveAsVirtual'
מה אני אעשה?
זאת השגיאה שאני מקבל:
Microsoft VBScript runtime error '800a01a8'
Object required
לא משנה הצלחתי תודה רבה