关于实现下载功能,整体流程看着没错误,但是没有提示下载。想问问这个是怎么回事

在idea上写的javaweb项目。 实现的是一个简单的下载txt文件功能,这是原servlet截图,运行输出的时间,没有错误,路径正确,也取出来了,在第二张图中可以看到。控制台输出一直到“xiazai6”。整体流程按照书上写的。

img

img

这是前端的头部。跟上面request.setHeader设置的一样。就是点击后,前端没有任何反应,没有出现下载的提示。

img

你看看前端响应体过来了没有
然后你代码里流 都没有关闭

我根据你的代码修改了一下 做了本地的一个接口 你看下我的代码 对你有没有帮助
我直接拼接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("输出流未关闭");
                }
            }
        }
    }