文件下载无法在Safari中运行?

时间:2017-01-27 08:51:50

标签: angularjs safari

我开发了一个带有PDF文件下载功能的角度JS Web应用程序。它在Safari中不起作用。

$http({
        method: 'GET',
        url: common.serviceUrl(config.apiServices.usermanuals),
        params: { manualId: manualId },
        responseType: 'arraybuffer'
    }).success(function (data, status, headers, config) {
        headers = headers();
        //var test = headers('Content-Disposition');
        var filename = headers['x-filename'];
        var contentType = headers['content-type'];

        var linkElement = document.createElement('a');
        try {
            var blob = new Blob([data], { type: contentType });
            var url = window.URL.createObjectURL(blob);

            linkElement.setAttribute('href', url);
            linkElement.setAttribute("download", filename);

            var clickEvent = new MouseEvent("click", {
                "view": window,
                "bubbles": true,
                "cancelable": false
            });
            linkElement.dispatchEvent(clickEvent);
        } catch (ex) {
            console.log(ex);
        }
    }).error(function (data) {
        console.log(data);
    });

请帮我找一个解决方法。谢谢

1 个答案:

答案 0 :(得分:0)

尝试使用FileSaver

var file = new Blob([data], { type: 'application/pdf;charset=utf-8' });
FileSaver.saveAs(file, filename);

*数据来自api回复,

* filename 您可以传递为abc.pdf