完成了我們的項目,我們需要的功能從服務器下載文件到客戶端的位置之一。如何識別是否下載使用一個ASHX處理程序
爲此,我們使用的是ASHX處理程序做了手術。它的工作完美,我們可以下載文件。
現在我們需要一個類似的要求,我們需要更新字段時下載開始並完成。有沒有辦法做到這一點。
一旦點擊下載鏈接另存爲對話框將出現之後,我覺得我們沒有任何控制,檢查進度。我想我們甚至不知道點擊了哪個按鈕,即我們不知道用戶是否點擊了「是」或「否」。
任何人都可以請建議當下載開始知道一個方法,當已經完成了嗎?我們在c#中使用Asp.Net 2.0。
用於下載的處理程序如下
string fileUrl = string.Empty;
if (context.Request["fileUrl"] != null)
{
fileUrl = context.Request["fileUrl"].ToString();
}
string filename = System.IO.Path.GetFileName(fileUrl);
context.Response.ClearContent();
context.Response.ContentType = "application/exe";
context.Response.AddHeader("content-disposition", String.Format("attachment; filename={0}", filename));
context.Response.TransmitFile(fileUrl);
context.Response.Flush();
給出的文件從一個aspx頁面的方法,如果下載開始下載喜歡
private void DownloadExe()
{
string downloadUrl = "Test.exe");
Response.Redirect("Test.ashx?fileUrl=" + downloadUrl, false);
}
是的,當我們點擊處理程序意味着我認爲下載即將開始。但是現在用戶也可以選擇單擊是或否來執行或取消下載。我沒有讓你知道如何知道下載何時開始或取消。你可以在網上提供任何樣品嗎?謝謝.. –
您合理可以看到的唯一的事情就是向服務器上的ASHX處理程序發出GET請求。您無法控制瀏覽器顯示UI的方式,以及它在何處讓用戶選擇保存/打開/取消。如果你想獲得超越GET開始/響應發送/連接關閉的東西,你將不得不建立你自己的下載客戶端(不可能通過瀏覽器)。 –
那麼處理程序如何知道下載何時開始以及何時完成? –