我有一個web api從azure中讀取文件並將其下載到一個字節數組中。客戶端收到該字節數組並將其下載爲pdf。這對於大文件不適用。 我無法弄清楚如何從web api發送字節塊到客戶端。下載大文件時瀏覽器崩潰
下面是Web API代碼僅返回字節數組客戶端:
CloudBlockBlob blockBlob = container.GetBlockBlobReference(fileName);
blockBlob.FetchAttributes();
byte[] data = new byte[blockBlob.Properties.Length];
blockBlob.DownloadToByteArray(data, 0);
return report;
客戶端代碼獲取數據AJAX請求完成時,創建一個鏈接,並設置其下載文件的下載屬性:
var a = document.createElement("a");
a.href = 'data:application/pdf;base64,' + data.$value;;
a.setAttribute("download", filename);
1.86 MB的文件發生錯誤。
瀏覽器顯示消息: 顯示網頁時出現問題。要繼續,請重新加載網頁。
使用URL.createObjectURL()代替dataURLs – dandavis
你可以發佈你的代碼嗎?很難看出它的根本問題。什麼是錯誤?它是服務器端錯誤,客戶端錯誤,你發現文件大小的閾值?我已經完成了從Azure存儲下載多個GB文件大小的項目,所以我知道這裏沒有限制。 – ManOVision
@ManOVision我添加了一些代碼。謝謝。 – user2585299