iOS Safari下载文件名的问题为“未知”

时间:2019-03-27 06:10:17

标签: ios reactjs download axios

我实现了Jersey REST服务来下载zip文件。 现在,我想在前端使用axios下载zip文件。 在PC Chrome浏览器中一切正常,但在iPad上使用Safari尝试时,它会打开一个名为“未知”的标签。

我搜索了一些文章,并提到这可能与IOS Safari兼容性有关。 例如https://caniuse.com/#feat=download

但是,我也想知道是否有任何方法可以将下载的文件显示为“ safari”的“ file.zip”。

下面是我的代码

后端:

@GET
@Path("/getTestingReport")
@Produces("application/zip")
public Response getTestingReport() throws Exception {
    // set file (and path) to be download
    File file = new File("C:/Users/abc/Desktop/test.zip");

    ResponseBuilder responseBuilder = Response.ok((Object) file);
    responseBuilder.header("Content-Disposition", "attachment; filename=\"MyJerseyZipFile.zip\"");
    return responseBuilder.build();         
}

前端:

 axios.get("report/getTestingReport").then((response) => {
    console.log("response", response)

    var blob = new Blob([response.data], { type: "application/zip" });
    const url = window.URL.createObjectURL(blob);
    const link = document.createElement('a');
    link.href = url;
    link.setAttribute('download', 'file.zip');
    document.body.appendChild(link);
    link.click();
}).catch((error) => {
    console.error("error response", error.response)
});

我有什么建议吗?

0 个答案:

没有答案