函數式編程
2019-11-20 09:45:26
我有一個有趣的任務,要求我將服務器(ASP.NET)的動態生成文件下載到客戶端。在客戶端,它只是JavaScript(jQuery),并且客戶端能夠生成許多參數以自定義數據的導出方式。從服務器下載文件的最佳方法是什么?我應該使用WCF服務(例如此處描述的內容)還是像這樣的簡單頁面?我不知道如何在不重新加載頁面的情況下下載文件(我不確定$ .ajax在這種情況下是否可以工作)。有人可以給我一些關于這個話題的指導嗎?謝謝。
2 回答

Helenr
TA貢獻1780條經驗 獲得超4個贊
首先,您可以從處理程序創建文件 .ashx
假設您有要下載的文件,download.ashx并且有一些要從JavaScript傳遞的參數,例如download.ashx?p1=8827&p2=8831,知道要創建什么。
然后在您的JavaScript上,您可以簡單地將重定向為
window.location = "download.ashx?p1=8827&p2=8831";
或替代方法,您可以使用window.open進行相同的思考
window.open("download.ashx?p1=8827&p2=8831");
您的文件將開始下載。
只需確保已設置附件的標題,以及句柄上的正確內容類型即可,例如:
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.AddHeader("Content-Disposition",
"attachment; filename=" + SaveAsThisFileName);
簡單明了,經過測試和工作。
添加回答
舉報
0/150
提交
取消