在Angularjs中使用AWS API从S3代理生成Word文档无法打开“选择使您的文档可读的编码”
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Angularjs中使用AWS API从S3代理生成Word文档无法打开“选择使您的文档可读的编码”相关的知识,希望对你有一定的参考价值。
我正在尝试使用AWS API(S3代理)和角度js从S3加载/保存文档。代码如下
- 响应类型标记为数组缓冲区,然后转换为带有UTF8的blob并键入“application / msword”(来自S3 API的已验证内容类型)
- 下载成功但是文件没有显示并且出现错误“选择使您的文档可读的编码”
- 尝试使用类型为application / pdf的pdf文档,pdf打开但没有显示数据。任何线索在这里是错的
$scope.URL = "https://jkq1yea3e5.execute-api.ap-south-1.amazonaws.com/Prod" + "/s3resources/"+"testfolder/"+ $scope.filename;
$http.get($scope.URL, {responseType: "arraybuffer"}).
success(function(data) {
$scope.info = "Read '" + $scope.URL + "' with " + data.byteLength
+ " bytes in a variable of type '" + typeof(data) + "'";
blob= new Blob([data], {type: $scope.type+";charset=utf-8"});
var url = window.URL.createObjectURL(blob);
var linkElement = document.createElement('a');
linkElement.setAttribute('href', url);
linkElement.setAttribute("download", $scope.filename);
linkElement.click();
FileSaver.saveAs(blob, $scope.filename,true);
答案
经过几个小时的努力,这对我有用。
为AWS API添加了二进制类型的application / msword
以上是关于在Angularjs中使用AWS API从S3代理生成Word文档无法打开“选择使您的文档可读的编码”的主要内容,如果未能解决你的问题,请参考以下文章
从(AngularJS)单页应用程序直接(并且简单!)AJAX 上传到 AWS S3
从托管在 S3 存储桶上的站点访问 AWS API 时出现 CORS 问题 [关闭]