將網頁
<asp:FileUpload ID="FileUpload1" runat="server"/>
上的文件上傳控件構建一個HTTP處理程序來處理文件上傳:
public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
HttpPostedFile fileToUpload = context.Request.Files["Filedata"];
string pathToSave = HttpContext.Current.Server.MapPath("~/Files/")
+ fileToUpload.FileName;
fileToUpload.SaveAs(pathToSave);
//Process file
}
public bool IsReusable {
get {
return false;
}
}
}
看看,如果你能像uploadify到整合的上傳插件項目(需要jQuery)。
<script type = "text/javascript">
$(document).ready(function()
{
$("#<%=FileUpload1.ClientID %>").uploadify(
{
'swf': 'Scripts/uploadify.swf',
'uploader': 'Handler.ashx',
'auto': true,
'buttonText': 'Select File(s)'
});
});
</script>
如果你不能做到這一點,你需要了解AJAX是如何工作的
阿賈克斯通常使用XMLHttpRequest的,它不允許你編碼並傳送本地文件到服務器。
您可以使用Flash swf處理在同一頁面上的上傳,或使用具有不可見1x1 iframe的目標的表單。
我發現公佈在這個博客上關於file uploads in asp.net
爲了澄清,你說它「可能需要幾個小時來上傳和構建」。我假設上傳部分非常快,構建需要很長時間? – Hamish
是的。現在它成立的方式會彈出一個小圓圈,並在它構建的整個時間內旋轉。 – Mysti