使用具有有效文件扩展名的ContentType保存文件

时间:2016-02-27 20:22:37

标签: angularjs post

我希望能够通过带有效文件扩展名的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');
})

1 个答案:

答案 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