用户可以向一组用户发送警报。警报将适合文本和(操作上)附加文件。问题在于,当文件变大时,上传需要更长的时间,用户界面也会受到限制。如何异步上传大文件
这就是我想要做的:发布表单后,我想要在后台完成上传,例如使用新线程。背后的想法是用户可以在文件上传时继续工作。
我已经阅读了线程是如何工作的,我不会看到如何将线程应用到服务器端。
感谢您指点我的解决方案。
编辑
我使用ASP.NET MVC 2.O
用户可以向一组用户发送警报。警报将适合文本和(操作上)附加文件。问题在于,当文件变大时,上传需要更长的时间,用户界面也会受到限制。如何异步上传大文件
这就是我想要做的:发布表单后,我想要在后台完成上传,例如使用新线程。背后的想法是用户可以在文件上传时继续工作。
我已经阅读了线程是如何工作的,我不会看到如何将线程应用到服务器端。
感谢您指点我的解决方案。
我使用ASP.NET MVC 2.O
如果你谈论ASP.NET,你会先添加一个的ScriptManager从工具箱(下AJAX扩展)。
然后添加一个AsyncFileUpload控件(来自AjaxToolKit)。
此控件在属性中有一个OnClientUploadComplete事件。将其绑定到某个功能,例如uploadComplete。
你的ASPX代码应该是这个样子:
<head runat="server">
<title></title>
<script type = "text/javascript">
function uploadComplete(sender) {
$get("<%=Label1.ClientID%>").style.color = "blue";
$get("<%=Label1.ClientID%>").innerHTML = "Successfully Uploaded";
}
function uploadError(sender) {
$get("<%=Label1.ClientID%>").style.color = "red";
$get("<%=Label1.ClientID%>").innerHTML = "Upload failed.";
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:Label ID="Label2" runat="server" Text="Asynchronous File Uploading"
ForeColor="#000066"></asp:Label>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:AsyncFileUpload OnClientUploadError="uploadError"
OnClientUploadComplete="uploadComplete" runat="server"
ID="AsyncFileUpload1" Width="400px" UploaderStyle="Modern"
CompleteBackColor = "White"
UploadingBackColor="#CCDDEE" ThrobberID="inProgress"
OnUploadedComplete = "FileUploadComplete"
/>
<asp:Image ID="inProgress" runat="server" ImageUrl = "~/inProgress.gif" />
<br />
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
</form>
</body>
你的代码隐藏文件(的.cs)应该是这个样子:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class AjaxUploadFile : System.Web.UI.Page
{
protected void FileUploadComplete(object sender, EventArgs e)
{
string savePath = @"F:\BLOG\Projects\InsertData\UploadedFiles\";
string filename = AsyncFileUpload1.FileName;
if (AsyncFileUpload1.HasFile)
{
savePath += filename;
AsyncFileUpload1.SaveAs(savePath);
}
}
}
这应该给你你想要的异步文件上传功能。你可以从http://www.asp.net/ajaxlibrary/AjaxControlToolkitSampleSite/得到AjaxToolKit
我正在使用ASP.NET MVC 2 – Richard77
这是什么类型的应用程序? ASP.NET? – Yahia
地铁?的WinForms? WPF? Silverlight的? Windows Phone? ASP.Net? MonoTouch的? – SLaks
像gmail如何做它? http://stackoverflow.com/questions/135123/how-can-i-get-gmail-like-file-uploads-for-my-web-app –