如何解决错误:无法创建临时文件18

时间:2017-03-13 03:05:48

标签: javascript angularjs blob arraybuffer

我使用此代码接收列表base64并打印多个pdf文件,我通过将每个base64转换为arraybuffer到blob pdf来处理这个问题。但它有错误创建临时文件失败18:确定某些文件对Web应用程序内的访问不安全,或者对文件资源进行了太多调用。 多次传递base64时。

$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;
        });

抱歉我的英文。谢谢你的帮助。

0 个答案:

没有答案