嵌入从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开始。 –