آموزش آپلود چندگانه به صورت Ajax در Asp.Net
آموزش آپلود چندگانه به صورت Ajax در Asp.Net
در این پست آموزش کامل آپلود چندگانه فایل ها به صورت Ajax با استفاده از jquery در Asp.Net را قرار داده ایم.
برای آپلود تصاویر و فایل ها در Asp.Net روش های متفاوتی وجود دارد در این آموزش ما به صورت کامل و بدون Refresh شدن صفحه با استفاده از Ajax فایل ها و تصاویر را در Asp.Net آپلود می کنیم .
ابتدا آخرین نسخه از JQuery را به برنامه خود اضافه کنید. سپس در صفحه ای که می خواهید آپلود انجام شود کدهای زیر را اضافه کنید.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>ایران گنج</title> <script src="Scripts/jquery-2.1.3.min.js"></script> <script type="text/javascript"> $(document).ready(function () { $("#btnUpload").click(function (evt) { var fileUpload = $("#FileUploadAjax").get(0); var files = fileUpload.files; var data = new FormData(); for (var i = 0; i < files.length; i++) { data.append(files[i].name, files[i]); } var options = {}; options.url = "FileUploadHandler.ashx"; options.type = "POST"; options.data = data; options.contentType = false; options.processData = false; options.success = function (result) { alert(result); }; options.error = function (err) { alert(err.statusText); }; $.ajax(options); evt.preventDefault(); }); }); </script> </head> <body> <form id="form1" runat="server"> <asp:FileUpload ID="FileUploadAjax" runat="server" AllowMultiple="true" /> <br /> <br /> <asp:Button ID="btnUpload" runat="server" Text="آپلود" /> </form> </body> </html>
حالا یک Generic Handler به نام FileUploadHandler.ashx به پروژه خود اضافه کنید و سپس کدهای آن را به صورت زیر تغییر دهید.
<%@ WebHandler Language="C#" Class="FileUploadHandler" %> using System; using System.Web; public class FileUploadHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { if (context.Request.Files.Count > 0) { HttpFileCollection files = context.Request.Files; for (int i = 0; i < files.Count; i++) { HttpPostedFile file = files[i]; string fname = context.Server.MapPath("~/uploads/" + file.FileName); file.SaveAs(fname); } } context.Response.ContentType = "text/plain"; context.Response.Write("فایل های با موفقیت آپلود شدند!"); } public bool IsReusable { get { return false; } } }
در کده های بالا مسیر آپلود را مشخص کردیم که پوشه uploads در ریشه سایت قرار دارد.
در پست های قبلی نحوه کنترل فایل های آپلودی را آموزش دادیم که می توانید حجم ، اندازه و فرمت فایل آپلودی در FileUploadHandler کنترل کنید.
نظر / سوال