下载以使用Java在浏览器中打开或保存本地文件
我想在浏览器中下载现有的本地excel文件,要求用户“打开”或“保存”该文件。我尝试了许多解决方案,但无法打开文件。 使用ApachePOI,我可以读写excel文件,但我找不到一个简单的解决方案来下载文件,提示用户打开或保存它。 我现在实际使用的代码是: 代码不起作用。没有打开或保存的请求。屏幕或日志中没有错误 有人能帮我吗下载以使用Java在浏览器中打开或保存本地文件,java,file,browser,download,apache-poi,Java,File,Browser,Download,Apache Poi,我想在浏览器中下载现有的本地excel文件,要求用户“打开”或“保存”该文件。我尝试了许多解决方案,但无法打开文件。 使用ApachePOI,我可以读写excel文件,但我找不到一个简单的解决方案来下载文件,提示用户打开或保存它。 我现在实际使用的代码是: 代码不起作用。没有打开或保存的请求。屏幕或日志中没有错误 有人能帮我吗 private void downloadFile(final String fileName, final SlingHttpServletResponse resp
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, 0, 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);
这上面有人吗?