我正在尝试在服务器端使用poi创建excel并将其发送到浏览器。 使用href或表单提交解决方案工作正常,但棘手的部分是文件创建花费太多时间所以我想向用户显示一些消息,如"处理文件"所以我使用简单的get请求实现了这一点,并在请求之前添加了loader,并在成功回调中删除了。
问题是 - 文件包含在客户端作为responseText而不是下载文件,并且总是执行故障回调。 请建议我如何在成功回调中获取文件而不是响应文本中的字节数据。 还尝试将内容类型设置为附件,强制下载等,但没有任何工作对我来说浏览器不下载文件它在响应文本中显示字节数据 尝试打开带有下载URL的新窗口但是如上所述创建文件需要花费时间,因此浏览器在几分钟后没有显示任何内容错误。
注意hwb是以下代码中的工作簿对象
file = new File(FileName+"_"+timeStamp+".xlsx");
FileOutputStream fos = new FileOutputStream(file);
hwb.write(fos);
fos.close();
file.deleteOnExit();
String contentType = "application/vnd.openxmlformats- officedocument.spreadsheetml.sheet";
ResponseBuilder response = Response.ok((Object) file, contentType);
response.header("Content-Disposition", "attachment; filename="+ file.getName());
return response.build();