我希望能够通过带有效文件扩展名的Http POST保存文件。
我无法使用contentType,因为它不是有效的文件扩展名。
我试图用AngularsJS http帖子做这件事。
注意代码中的最后一行。如何为文件提供适当的扩展名而不是硬编码?
.success(function (data, status, headers, config) {
var fileName = attrs.downloadType + "_" + attrs.downloadId;
var contentType = headers('Content-Type');
var file = new Blob([data], { type: contentType });
saveAs(file, fileName + '.txt');
})
答案 0 :(得分:0)
创建转换函数:
function extConvert(contentType) {
var extHash = { "text/plain": "txt",
"application/json": "json"
}
return extHash[contentType] || "txt";
};
然后在您的代码中使用它:
httpPromise.then(function onFulfilled(response) {
var fileName = attrs.downloadType + "_" + attrs.downloadId;
var contentType = response.headers('Content-Type');
var file = new Blob([response.data], { type: contentType });
var ext = extConvert(contentType);
FileSaver.saveAs(file, fileName + '.' + ext');
});
弃用通知
已弃用
$http
遗留承诺方法.success
和.error
。请改用标准.then
方法。 1