最快的解決辦法 - 如果你的文件處理將腳本超時之前完成,而你高興有用戶等待,而它發生:
地圖在您的網站的虛擬目錄來上傳文件夾 - 在我們的我們有/上傳/所有我們的網站服務器映射到我們的DMZ文件服務器上的一個開放的共享。
然後使用代碼這樣的事情在你的頁面代碼隱藏
protected void ProcessFilesButton_Click(object sender, EventArgs e) {
string uploadRootPath = Server.MapPath("~/upload/");
foreach(var uploadedFile in Request.Files) {
// might want to use a GUID filename here instead
// to avoid risk of filename conflicts.
string bareFileName = Path.GetFileName(uploadedFile.FileName);
string fullFilePath = Path.Combine(uploadRootPath, bareFileName);
uploadedFile.SaveAs(fullFilePath);
myMagicFileProcessor.ProcessFile(fullFilePath);
}
MyLabel.Text = String.Format("{0} files processed", Request.Files.Count);
}
更復雜的解決方案將涉及產卵一個後臺線程(或單獨的Windows服務或計劃任務)來處理文件處理,然後返回帶有元刷新的「Please Wait ...」頁面,該頁面將每隔10秒重新繪製頁面,然後在代碼中查詢隊列中文件的狀態並報告他們作爲處理完成每一個。