AsyncFileUpload: File Upload in UpdatePanel, ASP.NET AJAX

來源:互聯網
上載者:User

AJAX Control Toolkit Release 

September 2009 Release
Version 3.0.30930

 

 

 

 

 

Default.aspx

 

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="AsyncFileUpload._Default" %></p><p><%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %></p><p><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></p><p><html xmlns="http://www.w3.org/1999/xhtml" ><br /><head id="Head1" runat="server"><br /><title>AsyncFileUpload, ASP.NET, AJAX</title></p><p><script type="text/javascript"><br />var begin;<br />function AsyncFileUpload1_UploadError(sender, args)<br />{<br /> document.getElementById('lblUpload').innerText = "對不起,檔案“" + args.get_fileName() + "”上傳出錯,原因:" + args.get_errorMessage() ;<br />}</p><p>function AsyncFileUpload1_StartUpload(sender, args)<br />{<br /> begin=new Date();<br /> document.getElementById('lblUpload').innerText = "檔案“" + args.get_fileName() + "”正在上傳,請稍等";<br />}</p><p>function AsyncFileUpload1_UploadComplete(sender, args)<br />{<br /> var t=(new Date()).valueOf() - begin.valueOf();<br /> var speed = Math.round(args.get_length( ) / 1.024 / t);<br /> document.getElementById('lblUpload').innerText = "上傳 " + args.get_length() + " 位元組,用時 " + t + " 毫秒,速度:" + speed + " KB/s";<br />}<br /></script><br /></head><br /><body style="font-size:14px; font-family:宋體"><br /><form id="form1" runat="server"><br /><div><br /><div id="content"><br /><asp:ScriptManager ID="ScriptManager1" runat="server"><br /></asp:ScriptManager><br /><table width="100%" border="1" cellspacing="0" cellpadding="5"><br /><tr><br /><td>上傳檔案:</td><br /><td><br /><asp:UpdatePanel ID="UpdatePanel1" runat="server"><br /><ContentTemplate><br /><cc1:AsyncFileUpload ID="AsyncFileUpload1" runat="server"<br />onclientuploadcomplete="AsyncFileUpload1_UploadComplete"<br />onclientuploaderror="AsyncFileUpload1_UploadError"<br />onclientuploadstarted="AsyncFileUpload1_StartUpload"<br />onuploadedcomplete="AsyncFileUpload1_UploadedComplete" /><br /><asp:Label ID="lblUpload" runat="server"></asp:Label><br /></ContentTemplate></p><p><Triggers><br /><asp:AsyncPostBackTrigger ControlID="AsyncFileUpload1" EventName="UploadedComplete" /><br /></Triggers><br /></asp:UpdatePanel><br /></td><br /></tr></p><p><tr><br /><td>&nbsp;</td><br /><td><br /><asp:Label ID="Label1" runat="server" Text="1"></asp:Label> <br /><asp:Label ID="Label2" runat="server" Text="左側數值用於測試是否整個頁面被重新整理!" ForeColor="Red"></asp:Label><br /></td><br /></tr><br /></table><br /></div><br /></div><br /></form><br /></body><br /></html>

 

 

Default.aspx.cs

using System;<br />using System.Collections;<br />using System.Configuration;<br />using System.Data;<br />using System.Data.OleDb;<br />using System.Linq;<br />using System.Web;<br />using System.Web.Security;<br />using System.Web.UI;<br />using System.Web.UI.HtmlControls;<br />using System.Web.UI.WebControls;<br />using System.Web.UI.WebControls.WebParts;<br />using System.Xml.Linq;</p><p>namespace AsyncFileUpload<br />{<br /> public partial class _Default : System.Web.UI.Page<br /> {<br /> protected void Page_Load(object sender, EventArgs e)<br /> {<br /> if (IsPostBack)<br /> {<br /> Label1.Text = (int.Parse(Label1.Text) + 1).ToString();<br /> }<br /> }</p><p> protected void AsyncFileUpload1_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)<br /> {<br /> if (AsyncFileUpload1.HasFile)<br /> {<br /> AsyncFileUpload1.PostedFile.SaveAs(Server.MapPath("./") + AsyncFileUpload1.FileName);<br /> }<br /> }<br /> }<br />}

 

 

若要上傳大檔案,需要修改 Web.config 的值,

在 system.web 節新增內容

 

<system.web>
  <!-- maxRequestLength 控制允許上傳的最大檔案大小,單位是 KB  -->
  <httpRuntime maxRequestLength="2097151"/>
  ...
</system.web>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.