שלח תשובה

זירת השאלות

502
צפיות
12
תשובות

האם זה יתכן? הקוד שלי מול רכיב ושלי

,‏ 17 בספטמבר, 2004

יותר מהיר?
בניתי קוד מושלם להעלאת קבצים ללא רכיב
בדקתי אותו מול aspupload
עם שלוש תמונות של xp
הסקריפט שלי זריז מהרכיב ב13 שניות

מה אתם אומרים?
האם זה יתכן?

תגיות:

12 תשובות

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

    הקוד שלך כולל
    אפשרות של הגבלת גודל הקבצים? כמה מגה הקוד שלך יכול לעלות כי ASPUPLOAD מצליח עד 2 GB לדברי persits
    קוד בסיסי יכול להיות הגיוני אבל כדי לקבל את רוב הדברים שבאמת צריך aspupload הוא האלטרנטיבה הכי טובה

    נ.ב
    אתה יכול לבנות progress bar של העלאה ? ב-ASPUPLOAD יש את זה

  2. dudubs הגיב:

    כן עשיתי גם אפשרות של הגלת גודל של
    קובץ
    ומה זאת אומרת progress bar?
    ועוד כמה דברים שעשיתי בפונציות:
    הפונקציה מחזירה אם הקובץ נשמר
    יש אפשרות לקבל את מספר הבקשה
    או סתם אתה רוצה לשמור קובץ מצורה שלא יעבור עליה שוב:


    Call AspTransferUploadSaveAs("file1","__path__/uploads/__id__.__post__.__now__.__type__",SizeMB(1….100 וכו) or SizeKB(…..number))

    יש את האפשרויות הבאות:
    __id__ = מחזיר את זיהוי הבקשה
    __post__ = מחזיר את שם הInput
    __now__ = מחזיר את התאריך והשעה במקום  / ו : יש מקב(-)
    __type__ = מחזיר את סוג הקובץ (gif,asp…..)
    __name__ = יחזיר את שם הקובת ללא סיומת
    __filename__ = יחזיר את שם הקובץ עם הסיומת
    __path__  = יחזיר את מיקום בשרת כלומר Server.MapPath() עשיתי את זה בשביל שלא יצרכו לעבוד קשה
    הוספתי עוד פונקציה למקרה שרוצים לשמור במסד נתנונים את שם הקובת או לקבל את סוג הקובץ ללא הרבה עבודה בעזרת הפונקציה
    FileType = AspTransferUploadFunctions("file1","__type__")
    זה יחזיר את סיומת הקובץ שנשלח בinput file1
    אם רוצים לקבל את שם הקובץ המלא
    FileNameSave = AspTransferUploadFunctions("file1",__id__.__post__.__now__.__type__")
    וסתם אם לא רוצים לעבוד עם הפוקנציה הזו עבדתי עם Scripting.Dictionary
    נגיד אתם רוצים לשמור את הקובץ במסד ואתם רוצים לקבל את הערך שלו אז ככה:
    אז קודם כל צריך לבדוק אם הוא נשמר:
    If AspTransferUpload.Exists("file1") Then
    Response.Write(AspTransferUpload.Item("file1").Item("FileValue"))
    Else
    Response.Write("הקובץ אינו נשמר")
    End If
    ואם אתה רוצה לקבל את רשימת כל הקבצים שנשלחו אז ככה:
    For Each oUpload In AspTransferUpload.Items
    Response.Write(oUpload.Item("FileName") & "<HR />")
    Next
    אם ברצונך לשמור את כ להקבצים שהתקבלו + לכתוב אם הם נשמרו בשרת
    For Each oUpload In AspTransferUpload.Items
    FileUpload = AspTransferUploadSaveAs(oUpload.Item("Post"),"__path__/uploads/__filename__SizeMB(1….100 וכו) or SizeKB(…..number))

    Response.Write(oUpload.Item("Post") & ": " & FileUpload & "<HR />")
    Next

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

    נ.ב
    לאלה ששואלים אותם למה זה טוב לעבוד עם קוד ולא רכיב אז זה התשובה:
    אתם בונים אתר ואתם כל פעם צריכים לעבור שתים בלה בלה ובלה אז קוד asp יהיה יותר מתאים לשרת כלומר לא תצרך לפש שרת עם הרכיב הרציו או לשנות את קוד הרכיב
    קיצור שווה לעבוד עם קוד asp

    וניר תסביר מזה progress bar ב aspupload

  3. dudubs הגיב:

    אוף שחכתי להוסיף את הקוד שתראו טוב
    קובץ
    ומה זאת אומרת progress bar?
    ועוד כמה דברים שעשיתי בפונציות:
    הפונקציה מחזירה אם הקובץ נשמר
    יש אפשרות לקבל את מספר הבקשה
    או סתם אתה רוצה לשמור קובץ מצורה שלא יעבור עליה שוב:


    Call AspTransferUploadSaveAs("file1","__path__/uploads/__id__.__post__.__now__.__type__",SizeMB(1….100 וכו) or SizeKB(…..number))

    יש את האפשרויות הבאות:

    __id__ = מחזיר את זיהוי הבקשה
    __post__ = מחזיר את שם הInput
    __now__ = מחזיר את התאריך והשעה במקום  / ו : יש מקב(-)
    __type__ = מחזיר את סוג הקובץ (gif,asp…..)
    __name__ = יחזיר את שם הקובת ללא סיומת
    __filename__ = יחזיר את שם הקובץ עם הסיומת
    __path__  = יחזיר את מיקום בשרת כלומר Server.MapPath() עשיתי את זה בשביל שלא יצרכו לעבוד קשה

    הוספתי עוד פונקציה למקרה שרוצים לשמור במסד נתנונים את שם הקובת או לקבל את סוג הקובץ ללא הרבה עבודה בעזרת הפונקציה
    |קוד|
    FileType = AspTransferUploadFunctions("file1","__type__")

    זה יחזיר את סיומת הקובץ שנשלח בinput file1
    אם רוצים לקבל את שם הקובץ המלא
    |קוד|
    FileNameSave = AspTransferUploadFunctions("file1",__id__.__post__.__now__.__type__")

    וסתם אם לא רוצים לעבוד עם הפוקנציה הזו עבדתי עם Scripting.Dictionary
    נגיד אתם רוצים לשמור את הקובץ במסד ואתם רוצים לקבל את הערך שלו אז ככה:
    אז קודם כל צריך לבדוק אם הוא נשמר:
    |קוד|
    If AspTransferUpload.Exists("file1") Then
    Response.Write(AspTransferUpload.Item("file1").Item("FileValue"))
    Else
    Response.Write("הקובץ אינו נשמר")
    End If

    ואם אתה רוצה לקבל את רשימת כל הקבצים שנשלחו אז ככה:
    |קוד|
    For Each oUpload In AspTransferUpload.Items
    Response.Write(oUpload.Item("FileName") & "<HR />")
    Next

    אם ברצונך לשמור את כ להקבצים שהתקבלו + לכתוב אם הם נשמרו בשרת
    |קוד|
    For Each oUpload In AspTransferUpload.Items
    FileUpload = AspTransferUploadSaveAs(oUpload.Item("Post"),"__path__/uploads/__filename__SizeMB(1….100 וכו) or SizeKB(…..number))

    Response.Write(oUpload.Item("Post") & ": " & FileUpload & "<HR />")
    Next

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

    נ.ב
    לאלה ששואלים אותם למה זה טוב לעבוד עם קוד ולא רכיב אז זה התשובה:
    אתם בונים אתר ואתם כל פעם צריכים לעבור שתים בלה בלה ובלה אז קוד asp יהיה יותר מתאים לשרת כלומר לא תצרך לפש שרת עם הרכיב הרציו או לשנות את קוד הרכיב
    קיצור שווה לעבוד עם קוד asp

    וניר תסביר מזה progress bar ב aspupload

  4. dudubs הגיב:

    טוב אני רואה שאני לא יצליח היום
    תנסו להבין מה קוד ומה לא

  5. prince01 הגיב:

    progress bar
    בר טעינה .
    מציג אחוזים שנותרו עד לסיום ההעלאה (1 עד 100) .

  6. dudubs הגיב:

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


    <%@ Language="VBScript" Codepage="1255" %>
    <%
    Option Explicit

    Dim FSO
    Dim getFSO

    Response.ContentType = "image/gif"
    Set FSO = Server.CreateObject("Scripting.FileSystemObject")
      Set getFSO = FSO.OpenTextFile(Server.MapPath("Blue hills.jpg"),1,true,-1)
       Response.BinaryWrite(getFSO.ReadAll)
      Set getFSO = Nothing
    Set FSO = Nothing
    %>

    מישהו יודע למה?

  7. prince01 הגיב:

    מופיעה שגיאה ?
    או שהתמונה פשוט לא עולה ?

  8. dudubs הגיב:

    עוד שאלה של יעילות
    מה יותר כדי בשביל לספור כמה רשומות במסד באמצאות recordCount
    קוד 1:

    dbConn.Execute("SELECT * FROM table1").RecordCount

    או לבצע את זה עם adodb.recordset?
    (הקוד הקצת יותר ארוך)

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

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

    1) בעזרת COUNT של SQL, כאשר החסרון הוא שצריך לגשת למסד בשביל לבצע עוד שאילתה, והיתרון הוא שאפשר להשתמש ב recordset חסכוני. שימושי ביותר אם מספר הרשומות זה כל מה שצריך לשלוף.

    2) בעזרת recordcount – היתרון הוא שאין צורך לגשת עוד פעם למסד הנתונים, החסרון הוא שצריך להשתמש ב recordset די בזבזני.
    שימושי כאשר מספר הרשומות הוא קטן, או כאשר חייבים לקבל את מספר הרשומות לפני שמבצעים איתן כל מני דברים.

    3) מונה שרץ עם הלולאה שעוברת על ה recordset – היתרון הוא ששוב, אפשר להשתמש ב recordset חסכוני, ואין צורך בגישה נוספת למסד הנתונים.

    4) uBound של המערך שמקבלים ב getRows – סביר להניח שזו השיטה הטובה ביותר – אין השפעה לסוג ה recordset, אין צורך בגישה נוספת למסד.

  10. dudubs הגיב:

    לא על זה אני מדבר על איך אני קורא
    לפונצקציה כלומר אני ישר מוציא ללא set או הגדרה
    מבין?

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

    אתה לא מובן -בכלל-
    קרא איך מציגים שאלה בבקשה (יש בטאגליינס).

שלח תשובה