在idea上写的javaweb项目。 实现的是一个简单的下载txt文件功能,这是原servlet截图,运行输出的时间,没有错误,路径正确,也取出来了,在第二张图中可以看到。控制台输出一直到“xiazai6”。整体流程按照书上写的。
这是前端的头部。跟上面request.setHeader设置的一样。就是点击后,前端没有任何反应,没有出现下载的提示。
你看看前端响应体过来了没有
然后你代码里流 都没有关闭
我根据你的代码修改了一下 做了本地的一个接口 你看下我的代码 对你有没有帮助
我直接拼接url http://localhost:10001/api/doDownload?filename=download.txt 可以直接下载文件
@Override
public void doDownload(String filename, HttpServletRequest request, HttpServletResponse response) {
InputStream in = null;
OutputStream out = null;
try {
String folder = "C:\\Users\\11\\Desktop\\日常文件\\";
response.setContentType("text/html;charset=utf-8");
response.addHeader("content-Type", "application/octet-stream");
response.addHeader("Content-Disposition", "attachment;filename="+filename);
folder = folder + filename;
in = new BufferedInputStream(new FileInputStream(folder));
out = response.getOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = in.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
out.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (in != null){
try {
in.close();
} catch (IOException e) {
log.info("输入流未关闭");
}
}
if (out != null){
try {
out.close();
} catch (IOException e) {
log.info("输出流未关闭");
}
}
}
}