Время от времени приходится организовывать возможность загрузки пользователями файлов на сервер: загрузка аватарок, файлов для галереи и т.д.
Для решения этой задачи существует стандартный ASP.NET компонент FileUpload, который, в свою очередь, педставляет html-тэг . В простнйшем случае код для загрузки файлов будет выглядеть так: - Default.aspx: <%@ Page Language=“C#” AutoEventWireup=“true” CodeBehind=“Default.aspx.cs” Inherits=“WebApplication1._Default” %> - - - - <html xmlns=“http://www.w3.org/1999/xhtml"> - <head runat=“server”> - <title></title> - </head> - <body> - <form id=“form1” runat=“server”> - <div> - input type=“submit” value=“Upload” /> - </div> - </form> - </body> - </html> - - - Default.aspx.cs using System; - using System.Collections.Generic; - using System.Linq; - using System.Web; - using System.Web.UI; - using System.Web.UI.WebControls; - using System.IO; - - namespace WebApplication1 - { - public partial class _Default : System.Web.UI.Page - { - protected void Page_Load(object sender, EventArgs e) - { - if (IsPostBack && fu.FileContent != null) - { - fu.PostedFile.SaveAs(path); - } - } - } - } - - - Default.aspx: <%@ Page Language=“C#” AutoEventWireup=“true” CodeBehind=“Default.aspx.cs” Inherits=“WebApplication1._Default” %> - - - - <html xmlns=“http://www.w3.org/1999/xhtml"> - <head runat=“server”> - <title></title> - </head> - <body> - <script type=“text/javascript”> - function onFormSubmit() { - var formUpload = document.getElementById(‘form1’); - formUpload.target = ‘upload_target’; - formUpload.action = ‘default.aspx’; - - } - </script> - <form id=“form1” onsubmit=“onFormSubmit();"> - <div> - <input id=“file1” type=“file” name=“file1” /> <br /> - <input id=“file2” type=“file” name=“file2” /> - - <input type=“submit” value=“Upload” /> - - <iframe id=“upload_target1” name=“upload_target” src=”” style=“width:0;height:0;border:0px solid #fff;"></iframe> - </div> - </form> - </body> - </html> - - Default.aspx.cs: using System; - using System.Collections.Generic; - using System.Linq; - using System.Web; - using System.Web.UI; - using System.Web.UI.WebControls; - using System.IO; - - namespace WebApplication1 - { - public partial class _Default : System.Web.UI.Page - { - protected void Page_Load(object sender, EventArgs e) - { - if (IsPostBack) - { - HttpFileCollection uploads = HttpContext.Current.Request.Files; - for (int i = 0; i < uploads.Count; i++) - { - HttpPostedFile upload = uploads[i]; - - if (upload.ContentLength == 0) - continue; - - upload.SaveAs(path); - } - - } - } - } - } - -