Я реализовал сервис Jersey REST для загрузки zip-файла.
Теперь я хотел бы использовать Axios в передней части, чтобы загрузить ZIP-файл.
В PC Chrome все хорошо, но при попытке с Safari на iPad открывается вкладка с именем «unknown».
Я обыскал некоторые статьи и упомянул, что это может быть связано с совместимостью IOS-сафари.
например https://caniuse.com/#feat=download
Однако я также хочу знать, есть ли какой-либо способ показать загруженный файл как «file.zip» для сафари.
Ниже мой код
Backend:
@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();
}
Frontend:
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)
});
Могу ли я предложить?