嵌入從BLOB URL文件時,我有一個是在客戶端發送一個文件作爲arraybuffer然後將其讀入一個blob對象的網絡服務:「訪問被拒絕」的IE
$scope.contentType = response.headers["content-type"];
$scope.file = new Blob([response.data], { type: $scope.contentType });
$scope.fileUrl = URL.createObjectURL($scope.file);
$scope.content = $sce.trustAsResourceUrl($scope.fileUrl);
我使用一個對象標籤的容器:
<object id="documentContainer" ng-show="loaded" ng-attr-type="{{contentType}}" ng-attr-data="{{content}}" class="document-container"></object>
這在FF,鉻,移動瀏覽器的偉大工程,網絡瀏覽器受到外來物種誰從未有過的人性,等接觸,但不是在IE開發。
當對象標籤的數據參數設置,IE在控制檯響應與
Error: Access is denied.
這似乎是某種在IE的安全功能,其中它不希望使用該文件作爲一個源,因爲它駐留在客戶機上。它禁止訪問,即使您使用JavaScript來創建一個具有數據源集的全新dom元素。
微軟提供了自己的blob方法,如msSaveOrOpenBlob,但我需要能夠在瀏覽器中嵌入文件,而不是提示用戶在外部應用程序中打開文件。
有誰知道一種解決方法或方法來嵌入blob,它可以是多種文件類型,在IE中?我不願意爲了容納IE而急劇重構Web服務和前端代碼,但看起來可能是這種情況。
雖然blob api與使用數據uris相當不同。數據URI實際上僅用於編碼小文件 - 我認爲大多數瀏覽器的長度都有幾MB的限制。 – mrturburdaugh
4GB的大部分,只在IE瀏覽器。根據上面的鏈接,4GB限制從IE 9開始。 –