משיב מוביל
העלאת קבצים מרובה עם Ajax

שאלה
-
שלום,
אני מנסה למצוא איזשהו קוד פשוט להעלאת קבצים מרובים עם Ajax סטייל Gmail אולי.
האמת שאני פשוט לא מצליח למצוא שום דבר חינמי ופשוט שמצליח לעבוד, אשמח אם מישהו יוכל לעזור.
רוני.
יום שישי 03 פברואר 2012 12:04
תשובות
-
אתה מקבל שגיאת קומפילציה כי הקומפיילר רואה שאתה מנסה להשתמש עם משתנה filename שאינו מאותחל (הקומפיילר יוצא מנקודת הנחה שיכול להיות שהלולאה לא תופעל אפילו לא פעם אחת).
תשנה את שורת ההגדרה מ:
string tempfilename;
ל:
string tempfilename = null;
Please mark posts as answers/helpful if it answers your question.
Senior Consultant on WCF, ASP.NET, Siverlight, and Entity Framework. Author of Microsoft's Official WCF 4 Course. Co-author of the Microsoft HPC/Azure burst whitepaper.
Visit my blog: http://blogs.microsoft.co.il/blogs/idof- הוצע כתשובה על-ידי Ido Flatow. _Moderator יום שני 06 פברואר 2012 20:04
- סומן כתשובה על-ידי Eran Sharvit יום שלישי 07 פברואר 2012 08:13
יום ראשון 05 פברואר 2012 14:50מנחה דיון
כל התגובות
-
שלום.
ראה כאן:
http://webdeveloperplus.com/jquery/ajax-multiple-file-upload-form-using-jquery/
http://www.fyneworks.com/jquery/multiple-file-upload/#tab-Examples
שבת שלום
בהצלחה, ואם עזרתי, לחץ על 'סמן כתשובה', וסמן את התשובה כמועילה.יום שישי 03 פברואר 2012 12:13 -
נכנסתי לקישור השני עם ההמון דוגמאות, אבל מה שיש שם זה בסה"כ מאין פקד שנותן לך לבחור מספר פריטים, אין שם שום דבר לגבי העלאת הקבציםיום שישי 03 פברואר 2012 13:09
-
http://www.codeproject.com/Articles/68374/Upload-Multiple-Files-in-ASP-NET-using-jQuery
יש את הקוד שמופיע בכתובת למעלה שהוא די טוב, החיסרון שיש בו הוא זה, שכאשר קיים קובץ זהה באותו מיקום בשרת הוא פשוט דורס אותו, אני רוצה שהוא לא ידרוס אלא פשוט ישנה את השם של הקובץ הקיים, לכן הוספתי את השורות קוד הבאות אך משום מה הוא עושה לי שגיאה שאני לא מצליח להבין למה.
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btnUpload_Click(object sender, EventArgs e) { try { // Get the HttpFileCollection HttpFileCollection hfc = Request.Files; for (int i = 0; i < hfc.Count; i++) { HttpPostedFile hpf = hfc[i]; if (hpf.ContentLength > 0) { string savePath = Server.MapPath("~\\MyFiles\\"); string filename = System.IO.Path.GetFileName(hpf.FileName); string pathToCheck = savePath + filename; string tempfileName; if (System.IO.File.Exists(pathToCheck)) { int counter = 2; while ((System.IO.File.Exists(pathToCheck))) { // If a file with this name already exists, // prefix the filename with a number. tempfileName = counter.ToString() + filename; pathToCheck = savePath + tempfileName; counter = counter + 1; } filename = tempfileName; savePath += filename; } hpf.SaveAs(Server.MapPath(savePath)); Response.Write("<b>File: </b>" +savePath + "Uploaded Successfully <br/>"); } } } catch (Exception ex) { } } }
- נערך על-ידי רוני קרפ יום שישי 03 פברואר 2012 13:55
יום שישי 03 פברואר 2012 13:24 -
תוכל לרשום מה השגיאה? ובאיזה חלק מהקוד אתה מקבל אותה?
Please mark posts as answers/helpful if it answers your question.
Senior Consultant on WCF, ASP.NET, Siverlight, and Entity Framework. Author of Microsoft's Official WCF 4 Course. Co-author of the Microsoft HPC/Azure burst whitepaper.
Visit my blog: http://blogs.microsoft.co.il/blogs/idofיום שישי 03 פברואר 2012 17:00מנחה דיון -
בשורה השניה מסמן את ה filename כשגיאה של משתנה מקומי וכאשר אני מעתיק את השורות הללו לתוך הלולאה הוא פשוט לא מעלה את הקבצים
filename = tempfileName; savePath += filename;
יום ראשון 05 פברואר 2012 00:39 -
אתה מקבל שגיאת קומפילציה כי הקומפיילר רואה שאתה מנסה להשתמש עם משתנה filename שאינו מאותחל (הקומפיילר יוצא מנקודת הנחה שיכול להיות שהלולאה לא תופעל אפילו לא פעם אחת).
תשנה את שורת ההגדרה מ:
string tempfilename;
ל:
string tempfilename = null;
Please mark posts as answers/helpful if it answers your question.
Senior Consultant on WCF, ASP.NET, Siverlight, and Entity Framework. Author of Microsoft's Official WCF 4 Course. Co-author of the Microsoft HPC/Azure burst whitepaper.
Visit my blog: http://blogs.microsoft.co.il/blogs/idof- הוצע כתשובה על-ידי Ido Flatow. _Moderator יום שני 06 פברואר 2012 20:04
- סומן כתשובה על-ידי Eran Sharvit יום שלישי 07 פברואר 2012 08:13
יום ראשון 05 פברואר 2012 14:50מנחה דיון -
זה אמנם פתר את הבעיה של השגיאה אך הקבצים עדיין לא עולים. זה פשוט מראה כאילו כלום לא קורה, והקבצים לא באמת עולים גם
יום שני 13 פברואר 2012 11:43 -
תוכל להעלות דוגמה של אפליקציית ווב שממחישה את הבעיה? וננסה לעזור לדבג אותה?
מקסימום תעלה אותה ל-skydrive ותן לינק לשם.
Please mark posts as answers/helpful if it answers your question.
Senior Consultant on WCF, ASP.NET, Siverlight, and Entity Framework. Author of Microsoft's Official WCF 4 Course. Co-author of the Microsoft HPC/Azure burst whitepaper.
Visit my blog: http://blogs.microsoft.co.il/blogs/idofיום שני 13 פברואר 2012 15:00מנחה דיון -
כל הקישורים שהובאו כאן מבוססים על היכולת של הדפדפן AS IT IS. יכולת זו מאוד מוגבלת ולא מאפשרת למשל בחירה מרובה של קבצים.
אם יש לך 20 קבצים להעלות אתה באמת מתכוון כל פעם לבצי ניווט אל הקובץ ואז להעלות אותו ולעבור לקובץ הבא ולהעלות וכן הלאה?
ישנו פתרון הרבה יותר יעיל לטעמי והוא שימוש ב FLEX
ניתן לראות כאן דוגמה של ממשק בעברית:
http://kflashuploader.pitoach.info/#
* בממשק זה הקבצים לא עוברים לשרת בפועל כמובן וזה נועד רק להדגמה.
** מדובר בממשק מאוד מאוד מאוד... מאוד ישן שתרגמתי לפני כמה שנים מממשק קוד פתוח באנגלית. הממשק המדובר שלי עובד בכל שפה ומקבל את הנתונים של השפה מקובץ חיצוני שניתן לעדכן דינמית בשרת (XML פשוט) בניגוד לממשק המקורי שעובד בצורה קשיחה ופשוטה. גם את הגרסה העברית העברתי למקום שפרסם את הממשק המקורי באנגלית רק שכרגע אין לי מושג היכן זה (כאמור מדובר על כמה שנים אחורה) אבל אם זה חשוב בטח אפשר למצוא את זה (אני לא בטוח אפילו שיש לי את הקוד המקורי אצלי אבל אם זה מאוד חשוב בטח אוכל למצוא אותו בגיבויים ישנים...)
*** לסיכום: ההמלצה שלי לחפש באינטרנט העברת קבצים עם פלש/פלקס. ישנם הרבה פתרונות יפיםיום שלישי 14 פברואר 2012 05:54משיב -
הדוגמה שהעלתה פה זה בידיוק מה שאני מחפש, אם תוכל לשלוח לי את הקוד של זה ובמידה וזה באמת פועל זה יהיה מדהים!!!יום שלישי 14 פברואר 2012 18:40