610
צפיות
צפיות
23
תשובות
תשובות
העלאת קבצים:
שלום לכולם!
אחרי שקראתי את המאמר " "(ולעמן האמת כמעט ולא הבנתי כלום…), יש לי שתי שאלות:
1) איך אני יכול להגביל את הגולשים בסוג הקבצים שהם מעלים(כמו כאן בפורום)?
2) איך אפשר לעשות כמו כאן בפורום ששם הקובץ לא יישר כמו שהוא(הכוונה אותו השם שיש על מחשב בגולש) אלא שמו יהיה במספרים, כך שהקובץ האחרון מספר גדול ב-1 מזה שלפניו?
ביקצור: בדיוק כמו כאן בפורום…
ודרך אגב, במאמר יש חלק משמעותי שחסר!
תודה, אלברט
23 תשובות
נראה לי
שכאן בפורום הם משתמשים באובייקט להעלת קבצים
ואין שום דרך אחרת?
שמע…
גם אני קראתי את המאמר אבל לא הבנתי מילה
ואני עדיין לא למדתי להשתמש באובייקטים של העלאת קבצים
אוקיי…. אולי זהר פלד יודע?
דוקא לא…
אפפעם לא השתמשתי בשיטה הזו, ואין לי שום כוונה להתעמק בה.
כשאני צריך להעלות קובץ לשרת, אני משתמש באובייקט יעודי.
זה יותר מהיר, יותר יעיל, יותר נוח, ופשוט הרבה יותר טוב.
כנל
יעודי?
אתה יכול לפרט טיפה על השיטה הזאת?
תודה, אלברט
יעודי מלשון יעוד.
אובייקט יעודי להעלאת קבצים == אובייקט שמיועד להעלאת קבצים.
יש מספר לא מבוטל של אובייקטים כאלו, ולכל אובייקט יש את שיטות העבודה שלו.
=>
אז אתה יכול לתת לי דוגמה לאובייקט כזה חינמי ושמתאים לשאלות שלי?
איך להגביל את הגולשים בסוג הקובץ?
לתת שם מספרי לקובץ?
תודה, אלברט
אז ככה:
אתה פשוט מבצע בדיקה בצד הלקוח על ה value של תיבת ה file כדי לבדוק מה הסיומת של הקובץ. כמובן, זה לא פותר אותך מלבצע את אותה בדיקה גם בשרת.
בכל אובייקט להעלאת קבצים יש אופציה לשמור את הקובץ בשם אחר מהשם שבו הוא מופיע אצל הלקוח. כדי לתת שם מספרי לקובץ, מה שלרוב עושים בפורומים, לדוגמא, זה לקחת את ה id של ההודעה ולהשתמש בו בתור שם הקובץ – לפעמים מוסיפים לו איזה מספר קבוע כלשהו, שיראה כאילו זה לא קשור או מאיזה שהיא סיבה לא ברורה אחרת.
תודה, אבל:
א. ירדתי מהרעיון של לתת לקובץ שם מספרי.. הגעתי למסקנה שזה לא טוב….
ב. לקחתי מהלינק שנתת לי דוגמא של אובייקט, אבל משום מה הוא לא שומר לי את הקובץ בשום מקום…
הוא לא מציג שום הודעת שגיאה, הוא רק רושם את שם הקובץ, גודלו, סוגו וכו'…אך הקובץ אינו מופיע בשום ספרייה…. הנה הקוד:
<%
set upload = server.createobject("comUpload.UploadObj")
if upload.Form("file") <> "" then ' if file was uploaded.. "upload.fileCount > 0" will work too
' Please note that you cannot use Request() object any longer
' to access any form, you must use this object.
fileName = upload.File.fileName
fileName = replace( fileName, "#", "_" ) ' we don't want '#' sign in the file name.
fileSize = upload.File.fileSize
contentType = upload.File.contentType
response.write "File Name = " & fileName & "<br>"
response.write "File Size = " & fileSize & " Bytes<br>"
response.write "Content Type = " & contentType & "<br>"
if upload.FileExists( uploadDir & fileName ) then
response.write "File already exists… saving with different file name<br>"
end if
upload.AttachRandomNumber = true ' if same file exists, attach random number
on error resume next
savedAs = upload.SaveAs( uploadDir & fileName ) ' actually save file to the disk
' this function also returns saved file name
' if file already exists
if upload.error <> "" then response.write " **** Err (No permission on Upload Directory?): " & upload.error & "<br>"
on error goto 0
response.write "File has been saved as : " & savedAs & "<br>"
if upload.error <> "" then response.write " **** Err : " & upload.error & "<br>"
else
response.write "No file uploaded." & Upload.Form("file")
end if
%>
סליחה על הקוד הארוך… ובכוונה העתקתי את הקוד עם ההערות שלו כדי שיהיה יותר ברור…..
תודה, אלברט
אני לא מכיר את האובייקט הזה.
=>
אז…. איזה אובייקט אתה מכיר וממליץ?
תודה, אלברט
aspUpload, אבל הוא כבר לא בחינם…
לא יצא לי לעבוד עם אובייקטים אחרים.
SmartUpload חביב ביותר
אבל לא בוחרים אובייקט לפי מה שחינמי או נוח. משתמשים במה שמותקן על השרת.
=>
אם הוא חינמי אז אני אוכל גם להתקין אותו על השרת שלי(IIS), לא?
כן
אבל לבסוף…
אחרי שמתקינים זה שם קבצי DLL בתיקיית הקונטרול של השרת
אז אפשר להעתיק אותם ולהעלותם לשרת ולהכניס אותם לעמוד ע"י server.execute תקנו אותי אם אני טועה???
כן, אבל האתר לא יישב כל החיים
על המחשב האישי שלך… אתה תרצה להעלות אותו לרשת מתישהו.
=> ואם השרת הוא שלי?
אם השרת הוא המחשב שלך אז תוכל
להתקין, קח בחשבון שהאתר ירוץ ל-א-ט
אי אפשר סתם להתקין אובייקטים בשרת
אלא אם כן יש לך גישה מלאה לשם
למה ירוץ ל-א-ט?
)
בגלל האינטרנט?
יש "לי" שרת WINDOWS 2000 עם אינטרנט של 2.5 מגה…
(האמת זה לא שלי, זה של הבית ספר… אבל אני יכול להשתמש בו חופשי- כי אני בונה להם פרוייקט…