שלח תשובה

זירת השאלות

253
צפיות
23
תשובות

העלאת קבצים:

,‏ 6 בפברואר, 2004

שלום לכולם!
אחרי שקראתי את המאמר "העלאת קבצים ללא קומפוננטה"(ולעמן האמת כמעט ולא הבנתי כלום…), יש לי שתי שאלות:
1) איך אני יכול להגביל את הגולשים בסוג הקבצים שהם מעלים(כמו כאן בפורום)?
2) איך אפשר לעשות כמו כאן בפורום ששם הקובץ לא יישר כמו שהוא(הכוונה אותו השם שיש על מחשב בגולש) אלא שמו יהיה במספרים, כך שהקובץ האחרון מספר גדול ב-1 מזה שלפניו?
ביקצור: בדיוק כמו כאן בפורום…
ודרך אגב, במאמר יש חלק משמעותי שחסר!


תודה, אלברט

תגיות:

23 תשובות

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

    נראה לי
    שכאן בפורום הם משתמשים באובייקט להעלת קבצים

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

    שמע…
    גם אני קראתי את המאמר אבל לא הבנתי מילה
    ואני עדיין לא למדתי להשתמש באובייקטים של העלאת קבצים

  3. זהר פלד הגיב:

    דוקא לא…
    אפפעם לא השתמשתי בשיטה הזו, ואין לי שום כוונה להתעמק בה.
    כשאני צריך להעלות קובץ לשרת, אני משתמש באובייקט יעודי.
    זה יותר מהיר, יותר יעיל, יותר נוח, ופשוט הרבה יותר טוב.

  4. albert הגיב:

    יעודי?
    אתה יכול לפרט טיפה על השיטה הזאת?

    תודה, אלברט

  5. זהר פלד הגיב:

    יעודי מלשון יעוד.
    אובייקט יעודי להעלאת קבצים == אובייקט שמיועד להעלאת קבצים.
    יש מספר לא מבוטל של אובייקטים כאלו, ולכל אובייקט יש את שיטות העבודה שלו.

  6. albert הגיב:

    =>
    אז אתה יכול לתת לי דוגמה לאובייקט כזה חינמי ושמתאים לשאלות שלי?
    איך להגביל את הגולשים בסוג הקובץ?
    לתת שם מספרי לקובץ?

    תודה, אלברט

  7. זהר פלד הגיב:

    אז ככה:
    לינק.

    אתה פשוט מבצע בדיקה בצד הלקוח על ה value של תיבת ה file כדי לבדוק מה הסיומת של הקובץ. כמובן, זה לא פותר אותך מלבצע את אותה בדיקה גם בשרת.

    בכל אובייקט להעלאת קבצים יש אופציה לשמור את הקובץ בשם אחר מהשם שבו הוא מופיע אצל הלקוח. כדי לתת שם מספרי לקובץ, מה שלרוב עושים בפורומים, לדוגמא, זה לקחת את ה id של ההודעה ולהשתמש בו בתור שם הקובץ – לפעמים מוסיפים לו איזה מספר קבוע כלשהו, שיראה כאילו זה לא קשור או מאיזה שהיא סיבה לא ברורה אחרת.

  8. albert הגיב:

    תודה, אבל:
    א. ירדתי מהרעיון של לתת לקובץ שם מספרי.. הגעתי למסקנה שזה לא טוב….
    ב. לקחתי מהלינק שנתת לי דוגמא של אובייקט, אבל משום מה הוא לא שומר לי את הקובץ בשום מקום…
    הוא לא מציג שום הודעת שגיאה, הוא רק רושם את שם הקובץ, גודלו, סוגו וכו’…אך הקובץ אינו מופיע בשום ספרייה…. הנה הקוד:

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

    סליחה על הקוד הארוך… ובכוונה העתקתי את הקוד עם ההערות שלו כדי שיהיה יותר ברור…..

    תודה, אלברט

  9. albert הגיב:

    =>
    אז…. איזה אובייקט אתה מכיר וממליץ?

    תודה, אלברט

  10. זהר פלד הגיב:

    aspUpload, אבל הוא כבר לא בחינם…
    לא יצא לי לעבוד עם אובייקטים אחרים.

  11. SmartUpload חביב ביותר
    http://www.aspsmart.com/aspSmartUpload/

    אבל לא בוחרים אובייקט לפי מה שחינמי או נוח. משתמשים במה שמותקן על השרת.

  12. albert הגיב:

    =>
    אם הוא חינמי אז אני אוכל גם להתקין אותו על השרת שלי(IIS), לא?

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

    אבל לבסוף…
    אחרי שמתקינים זה שם קבצי DLL בתיקיית הקונטרול של השרת
    אז אפשר להעתיק אותם ולהעלותם לשרת ולהכניס אותם לעמוד ע"י server.execute תקנו אותי אם אני טועה???

  14. כן, אבל האתר לא יישב כל החיים
    על המחשב האישי שלך… אתה תרצה להעלות אותו לרשת מתישהו.

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

    אם השרת הוא המחשב שלך אז תוכל
    להתקין, קח בחשבון שהאתר ירוץ ל-א-ט

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

    אי אפשר סתם להתקין אובייקטים בשרת
    אלא אם כן יש לך גישה מלאה לשם

  17. albert הגיב:

    למה ירוץ ל-א-ט?
    בגלל האינטרנט?
    יש "לי" שרת WINDOWS 2000 עם אינטרנט של 2.5 מגה…
    (האמת זה לא שלי, זה של הבית ספר… אבל אני יכול להשתמש בו חופשי- כי אני בונה להם פרוייקט…)

שלח תשובה