Javascript 如何解决错误:未能创建临时文件18
我使用这段代码来接收ListBase64并打印多个pdf文件,我通过将每个base64转换为arraybuffer来处理这个问题。但创建临时文件18时出现错误:确定在Web应用程序中访问某些文件不安全,或者对文件资源进行了太多调用。当多次通过base64时Javascript 如何解决错误:未能创建临时文件18,javascript,angularjs,blob,arraybuffer,Javascript,Angularjs,Blob,Arraybuffer,我使用这段代码来接收ListBase64并打印多个pdf文件,我通过将每个base64转换为arraybuffer来处理这个问题。但创建临时文件18时出现错误:确定在Web应用程序中访问某些文件不安全,或者对文件资源进行了太多调用。当多次通过base64时 $scope.b64toBlob = function (b64Data, contentType, sliceSize) { contentType = contentType || ''; slic
$scope.b64toBlob = function (b64Data, contentType, sliceSize) {
contentType = contentType || '';
sliceSize = sliceSize || 1024;
var byteCharacters = atob(b64Data);
var byteArrays = [];
for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {
var slice = byteCharacters.slice(offset, offset + sliceSize);
var byteNumbers = new Array(slice.length);
for (var i = 0; i < slice.length; i++) {
byteNumbers[i] = slice.charCodeAt(i);
}
var byteArray = new Uint8Array(byteNumbers);
byteArrays.push(byteArray);
}
var blob = new Blob(byteArrays, {type: contentType});
return blob;
}
return $http.post(api, params).then(function(response) {
$scope.isSaving = false;
var datas = response.data;
for(var i = 0; i < datas.length; i++) {
var uint8Array = new Uint8Array(datas[i]);
var arrayBuffer = uint8Array.buffer;
var file = $scope.b64toBlob(datas[i], typeReport);
var fileURL = window.URL.createObjectURL(file);
window.open(fileURL);
}
$scope.clear();
}, function(){
$scope.isSaving = false;
});
$scope.b64toBlob=函数(b64Data,contentType,sliceSize){
contentType=contentType | |“”;
切片大小=切片大小| | 1024;
var byteCharacters=atob(b64Data);
var ByteArray=[];
对于(变量偏移量=0;偏移量
对不起我的英语。感谢您的帮助。是否
javascript
向同一域发出多个请求?您能提供有关错误上下文的更多详细信息吗?一个请求“$http.post(api,params)。然后(函数(响应)”到服务器,但它返回列表base64代码,每个base64(字节[])代码我想打印一个文件pdf,我尝试list base64代码有8个元素,它运行,但有15个元素,它有错误。.size
的Blob
在哪里出错?iswindow.open()
调用了八次?预期的结果是被调用了十五次?是的,window.open调用了八次。我不知道blob的大小是否出错,但base64代码的大小相当大,我收到的base64列表的大小总计接近300MB,您是否尝试过允许用户调用window.open()
一次打印一个文件?