1
這個問題讓我瘋狂。谷歌瀏覽器上的大文件下載問題
我想導出由iTextSharp生成的pdf報告。
我有一個ASP.NET Web API項目,我有我的代碼生成PDF文件。
我打電話給API使用jQuery使用post方法發送一些參數,獲取基於這些過濾器的查詢結果並導出它們。
在IE和FireFox上都可以正常工作。涉及到大於5MB的文件時,該問題與Google Chrome有關。該過程完成,但我從Chrome獲得「下載失敗 - 網絡錯誤」。
這個問題似乎與javascript部分有關,因爲字節數組正確返回。
對此有任何幫助嗎?
我的ASP.NET Web API方法代碼:
[HttpPost]
public byte[] ExportPDFRequestsList(RequestFilter filter)
{
//Method contains the logic of export that has no issues
return RequestsService.ExportPDFRequestsList(filter);
}
我的JavaScript代碼來下載文件:
$.when(
//jQuery ajax post method -- works fine
AppObj.JsonCall("Post", exportPDFRequestsListUrl, true, parameter)
).then(function (response) {
var newdata = "data:application/pdf;base64," + escape(response);
var a = document.createElement("a");
//build download link:
a.href = newdata;
a.setAttribute("download", "Requests.pdf");
document.body.appendChild(a);
setTimeout(function() {
var e = document.createEvent("MouseEvents");
e.initMouseEvent("click", true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null
);
a.dispatchEvent(e);
document.body.removeChild(a);
}, 999);
});