我正在尝试下载Excel(xlsx)文件。该文件是使用SXSSFWorkbook生成的,当我在服务器中打开它时没有任何问题。但是当我在我的角度应用程序中下载它时,该文件已损坏。
这是我的API代码:
@GET
@Path("/{id}/download")
@Produces("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
public Response downloadFile(@PathParam("id") long fileId,) throws Exception {
File target = getFile(fileId); //Another method which generates the file
return Response.ok((object)target, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
.header("content-disposition","attachment; filename =filename.xlsx")
.build();
}
这是我用于下载的Angular代码:
var a = document.createElement("a");
document.body.appendChild(a);
a.style = "display: none";
var fileType = response.headers('Content-Type');
var fileBlob = new Blob([response.data], {type: fileType});
var fileName = getFileName(response.headers('Content-Disposition'));
var fileURL = fileUtils.createURL(fileBlob);
a.href = fileURL;
a.download = fileName;
a.click();
window.URL.revokeObjectURL(fileURL);
我目前正在使用Jersey 1.1,Glassfish 3.1.2和Angular 1.4.7。