קטגוריות
C#

פקד להעלאת קובץ לאתר אינטרנט באמצעות ASP.NET Web Forms

מדריך לבניית פקד העלאת קבצים לאתר באמצעות ASP.NET Web Forms ו- C Sharp

מדריך זה נכתב בעקבות שאלה שנשאלתי איך לעשות פקד להעלאת קבצים בסיסי ב ASP.NET Web Forms כאשר הדרישה היחידה היא להעלות את הקובץ ללא אפקטים מיוחדים.

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

קובץ ה aspx שלנו יכלול 2 פקדים: פקד לבחירת קבצים וכפתור העלאה.

<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button runat="server" ID="UploadButton" OnClick="UploadButton_Click" Text="Upload" />

הקובץ שמכיל את הקוד (aspx.cs) יכלול את הפונקציה UploadButton_Click שתתבצע לאחר לחיצה על כפתור ה UPLOAD.

//Validate if user choose file
if (!FileUpload1.HasFile)
     return;

//Validate file extension
string[] allowedExtensions = new string[] { ".GIF", ".PNG", ".JPG" };
string fileExtension = System.IO.Path.GetExtension(FileUpload1.PostedFile.FileName);
if (!allowedExtensions.Contains(fileExtension.ToUpper()))
     return;<br><br>//The Folder to upload the file
string uploadFolder = Server.MapPath("/Images/");

//Upload the file
FileUpload1.PostedFile.SaveAs(string.Concat(uploadFolder, System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName)));

הסבר על הקוד

שורה 2-3: בדיקה אם נבחר קובץ.

שורה 5-9: בדיקת סוג הקובץ שהמשתמש מנסה להעלות. במקרה זה רציתי להדגים העלאת תמונות ולכן לצורך הדוגמא נתתי למשתמש אפשרות להעלות GIF, PNG או JPG. קטע זה איננו חובה מבחינה תכנותית והעלאת התמונות יכולה לעבוד גם ללא שורות אלא אך משיקולי אבטחה לא הייתי מוותר על בדיקת סוג הקובץ שהמשתש מנסה להעלות.

שורה 12: הגדרת התיקייה שאליה נעלה את התמונה (באופן יחסי לתיקייה הראשית של האתר).

שורה 15: העלאת הקובץ.

ניתן גם להגביל את גודל הקובץ שהמשתמש רוצה להעלות באמצעות הקוד הבא (רק תחליפו את FILE_MAX_SIZE בגודל המקסימלי של הקובץ המועלה ב- bytes):

if (FileUpload1.PostedFile.ContentLength > FILE_MAX_SIZE)
        return;
שתף:

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *