使用角度$ http下载时文件损坏
问题描述:
我使用角度$ http从服务器下载文件。文件类型可以不同。 我应该设置请求标头为了认证。下载完成时, 文件已损坏! 这里是我的客户端代码来保存文件:
getFile: function(file) {
$http({
method: 'GET',
url: 'download' + "/" + file.name,
headers: {
"X-AUTH-TOKEN": "my-token",
Accept: "*/*",
}
}).success(function(data) {
var fileBlob = new Blob([data], {
type: '*/*;charset=utf-8'
});
saveAs(fileBlob, file.name);
}).error(function(err) {
console.log('err', err);
});
}
答
我最后加入这个CONFIGS到Ajax请求解决了这个问题:
dataType : "binary",
processData : false,
responseType : 'arraybuffer'
和不断变化的BLOB类型
“应用/ octet-stream“
+0
任何人都可以帮我解决这个问题吗? http://*.com/questions/42396959/downloaded-document-getting-corrupted-using-blob-method-in-angularjs – Phoenix
是您的损坏文件的二进制文件或文本文件? –
* .txt文件都可以。但* .pdf,* .docx等已损坏 –
将二进制文件另存为文本文件会导致大量字符被解释,从而破坏二进制文件。我已经删除了我的答案,因为它没有删除它,但这可能是原因。在这里进一步挖掘:http://*.com/questions/23451726/saving-binary-data-as-file-using-javascript-from-a-browser –