SpringMVC 下载文件(直接在浏览器打开)

简介: SpringMVC 下载文件(直接在浏览器打开)

前端代码:

//下载用户手册
    function downUserManual() {
        debugger
        var downLoadPath = "/system/downUserManual.do";
        var url = getRootPath() + downLoadPath;
        window.open(url)

后端代码:

@RequestMapping(value = "/downUserManual.do", method = RequestMethod.GET)
    public void download(HttpServletRequest request, HttpServletResponse response) throws IOException {
        FileInputStream fis = null;
        byte[] bytes = null;
        ServletOutputStream ouputStream = null;
        ByteArrayOutputStream baos = null;
        try {
            ServletContext servletContext = request.getSession().getServletContext();
            String filePath = servletContext.getRealPath("/downloadfile/用户手册.pdf");
            File file = new File(filePath);
            fis = new FileInputStream(file);
            baos = new ByteArrayOutputStream();
            int len;
            byte[] buffer = new byte[1024];
            while ((len = fis.read(buffer)) != -1) {
                baos.write(buffer, 0, len);
            }
            bytes = baos.toByteArray();
            response.setContentType("application/pdf");
            response.setContentLength(bytes.length);
            ouputStream = response.getOutputStream();
            ouputStream.write(bytes, 0, bytes.length);
            ouputStream.flush();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (fis != null) {
                try {
                    fis.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (baos != null) {
                try {
                    baos.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (ouputStream != null) {
                try {
                    ouputStream.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }


目录
相关文章
|
6天前
|
JavaScript
浏览器插件crx文件--JS混淆与解密
浏览器插件crx文件--JS混淆与解密
11 0
|
4月前
|
测试技术
【sgUploadTileImage】自定义组件:浏览器端生成瓦片图,并转换为File文件序列上传瓦片图
【sgUploadTileImage】自定义组件:浏览器端生成瓦片图,并转换为File文件序列上传瓦片图
|
3月前
|
Web App开发 前端开发
Chrome 浏览器插件 V3 版本 Manifest.json 文件中 Action 的类型(Types)、方法(Methods)和事件(Events)的属性和参数解析
Chrome 浏览器插件 V3 版本 Manifest.json 文件中 Action 的类型(Types)、方法(Methods)和事件(Events)的属性和参数解析
156 0
|
8月前
VSCode用浏览器预览/运行html文件
VSCode用浏览器预览/运行html文件
|
7月前
|
Web App开发 XML 编解码
IE浏览器下载文件中文文件名乱码问题解决
IE浏览器下载文件中文文件名乱码问题解决
85 0
|
4月前
|
Ubuntu
这个错误提示是因为`hgctl`工具在尝试打开浏览器时,找不到可执行的`xdg-open`文件
这个错误提示是因为`hgctl`工具在尝试打开浏览器时,找不到可执行的`xdg-open`文件
59 1
|
4月前
|
Ubuntu
因为`hgctl`工具在尝试打开浏览器时,找不到可执行的`xdg-open`文件
因为`hgctl`工具在尝试打开浏览器时,找不到可执行的`xdg-open`文件
43 1
|
4月前
|
分布式计算 Hadoop Linux
解决Hadoop在浏览器中Browse Directory,无法下载文件的问题
解决Hadoop在浏览器中Browse Directory,无法下载文件的问题
37 0
|
5月前
vscode用浏览器预览运行html文件
vscode用浏览器预览运行html文件
57 2
|
5月前
|
Web App开发 JSON 前端开发
根据markdown文件反向转换成chrome浏览器书签html
前几天手贱直接把 bookmark 的源文件给删了,这下这么多年收藏整理的书签只有自己博客里的一个 markdown 文件了,毕竟还是直接用浏览器自带的 bookmark 查看会方便好多,只能想办法怎么根据现在的 markdowm 文件转换回 bookmark.html 文件了
48 0