שלח תשובה

זירת השאלות

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

בעיית טפסים…..

,‏ 20 ביוני, 2004

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


<form name="enter_this" method=post action="enter_this.asp" ENCTYPE="multipart/form-data">


אך כאשר זה כך request.form לא עובד ואז אינני יכול לשלוח מידע לדף שמטפל בהעלת הקובץ בשביל שיכנס למסד הנתנים ….. מה עושים, אולי צריך להגדיר את הטופס אחרת?
אני לא מומחה גדול בטפסים אבל נראה לי שכאשר אני מגדיר: ENCTYPE="multipart/form-data  יש בעיה לשלוח מידע ב  request.form.
אני צודק?
אשמח אם משהו יכול לעזור לי……..

תגיות:

17 תשובות

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

    אז ככה…
    ברגע שאתה מגדיר "ENCTYPE="multipart/form-data אז אתה אומר ללקוח שישלח ערכים בינאריים ללקוח ולכן Request.Form לא יעבוד לך כי הוא נועד לטיפול בערכים טקסטואליים.
    לרוב אובייקט העלאת קבצים בה עם שיטה שנועדה לקרוא ערכים טקסטואליים. באובייקט aspUpload השיטה היא .Form ולכן כך תקרא לשדה

    objUpload.Form("input name")

    באובייקטים אחרים יש שיטה אחרת.
    אם איזה אובייקט אתה משתמש.

    (ודי שואלים את זה יותר מידי מתי יכניסו את הסבר כזה ל-FAQ ?)

  2. בוב הגיב:

    תודה אחי, אני חושב שזה aspUpload…
    אני חושב שאני משתמש ב aspUpload הינה הקוד:


    Set Upload = Server.CreateObject("Persits.Upload.1")
        Upload.Save  
       Set File1 = Upload.Files("FILE1")
       File1.SaveAs "c:GpathAdrivecomboimages" & name & ".JPG"

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

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

    את הקוד
    במידה וזה aspUpload אז אתה צריך לעשות כך כדי לקרוא את הערכים ב-INPUT

    Upload.Form("inputName")

  4. בוב הגיב:

    הבנתי נכון…..?
    פשוט לשים

    Upload.Form("inputName")

    במקום

    request.form("inputName")

    ???????

  5. prince01 הגיב:

    ראיתי בasp.org.il מאמר …..
    מאמר להעלות קבצים ללא רכיב, המאמר כולל אופצייה להגביל את גודל הקובץ .
    http://www.asp.org.il/articles/upload_no_comp.asp

    ודוגמאת קוד (מאמר אחד לפני כן) :
    http://www.asp.org.il/samples/upload/upload_txt.asp

    לא ניסיתי את הקוד, אם תנסה וזה יעבוד אשמח אם תודיע לי .

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

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

  7. prince01 הגיב:

    אבל בשני המקרים – קובץ מועלה לשרת
    צודק בנושא היעילות והמהירות, אבל בכל מקרה הקובץ יועלה ללא בעיה גם ללא רכיבים.

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

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

  9. בוב הגיב:

    תודה, הכל עובד אבל…..
    וואלה ניר אתה 10 אבל יש בעיית עיברית כלומר כאשר אני משתמש ב upload.form("input") אז המידע בעברית שמועבר לקובץ שמטפל בהעלאה וגם בבסיס הנתונים הופך לג'בריש….. אך העברית הזאת – רק בעיות…….
    אני בטוח שיש פתרון….. אשמח אם משהוא מכיר…….

  10. BuildHome הגיב:

    תוסיף את זה בשורה הראשונה בעמוד שלך

    <%@language="VBSCRIPT" CODEPAGE="1255"%>

    זה אמור לטפל בג'יבריש.

  11. בוב הגיב:

    את זה אני יודע…….אבל..
    הבעיה היא לא בעיית עברית כללית את ההגדרה הזאת יש לי גם בקובץ של הטופס וגם בקובץ שמקבל את המידע.
    זאת בעיה שהמידע נישלח לא בעברית בגלל שהטופס מוגדר: ENCTYPE="multipart/form-data אז המידע מהטופס נשלח בבינארי ולא מתורגם לעיברית.
    אני חושב שזאת בעיה שבטוח משהוא נתקל בה…. מישהו…??????????

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

    הנה
    זה בדף שבו הטופס:

    <FORM ACTION="CheckMsg.asp" method=POST enctype="multipart/form-data"
      onsubmit="txtMsgSubj.value = escape(txtMsgSubj.value);
                txtMsgContent.value = escape(txtMsgContent.value);
                Word.value = escape(Word.value);">
        

    כולמר הצפנתי את התוכן בעזרת escape .
    כעת בדף המקבל (אצלי CheckMsg) עשיתי כך:

    txtMsgContent=unescape(upload.form("txtMsgContent"))

    קישור

    זה אמור לפתור לך את הבעיה..

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

    בלקוח משתמשים רק ב-JS
    דפדפנים שהם לא אקספלורר לא יצליחו לקרוא א הקוד של VBS והסקריפטים לא יתבצעו

שלח תשובה