如何解决下载以使用Java在浏览器中打开或保存本地文件
我想在浏览器中下载一个现有的本地excel文件,要求用户“打开”或“保存”该文件。我尝试了许多解决方案,但无法打开文件。 使用Apache POI,我可以读写excel文件,但是找不到简单的下载文件提示用户打开或保存文件的解决方案。 我现在实际上正在使用此代码: Download Excel File Via Servlet
该代码不起作用。无需打开或保存请求。屏幕或日志中没有错误。
请问有人可以帮我吗?
private void downloadFile(final String fileName,final SlingHttpServletResponse response){
try {
final File f = new File(fileName);
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition","attachment; filename="+fileName);
response.setHeader("Pragma","public");
response.setHeader("Cache-Control","no-store");
response.addHeader("Cache-Control","max-age=0");
FileInputStream fin = null;
try {
fin = new FileInputStream(f);
} catch (final FileNotFoundException e) {
e.printStackTrace();
}
final int size = 1024;
try {
response.setContentLength(fin.available());
final byte[] buffer = new byte[size];
ServletOutputStream os = null;
os = response.getOutputStream();
int length = 0;
while ((length = fin.read(buffer)) != -1) {
os.write(buffer,length);
}
fin.close();
os.flush();
os.close();
} catch (final IOException e) {
e.printStackTrace();
}
}catch (final Exception ex){
LOGGER.error("ERROR IS ::: {}",ex.getMessage());
}
我将内容配置更改如下:
response.setHeader("Content-Disposition","attachment; filename="+fileName);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。