博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
126.文件下载 是在版本2的基础上完成的
阅读量:6953 次
发布时间:2019-06-27

本文共 1838 字,大约阅读时间需要 6 分钟。

hot3.png

1.效果

154726_Q3jG_3015807.png

154826_iZAL_3015807.png

2. 后台

2.1 实体类加两个属性

154604_CfZM_3015807.png

上传的时候 保存属性

160214_9SIM_3015807.png

2.2 页面

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>文件下载</title>
    <style> 
    .expa{ width:120px; height:80px; border:1px solid #F00} 
    .expb{ width:200px; height:120px; border:1px solid #00F} 
    </style>
</head>
<body>
    <h3>文件下载</h3>
    <div>
        <img alt="" src="${requestScope.user.filepath}" width="400px" height="300px">
    </div>
<a href="${pageContext.request.contextPath }/download.action?filename=${requestScope.user.realname}">
       ${requestScope.user.image.originalFilename }
    </a>
</body>
</html>

160657_jbkb_3015807.png

2.3 后台 代码

       /**

        * 6. 下载文件
        * request
        * filename
        * model
        *
        * Exception
        */
       
       @RequestMapping(value="/download.action")
         public ResponseEntity<byte[]> download(HttpServletRequest request, @RequestParam("filename") String filename, Model model)throws Exception {
            //下载文件路径
          //  String path = request.getServletContext().getRealPath("/images/");
             String temp =request.getServletContext().getContextPath();
              String path = "D:/workspace"+temp+"/src/main/webapp/img";
              
            File file = new File(path + File.separator + filename);
            
            HttpHeaders headers = new HttpHeaders();  
            //下载显示的文件名,解决中文名称乱码问题  
            String downloadFielName = new String(filename.getBytes("UTF-8"),"iso-8859-1");
            //通知浏览器以attachment(下载方式)打开图片
            headers.setContentDispositionFormData("attachment", downloadFielName); 
            //application/octet-stream : 二进制流数据(最常见的文件下载)。
            headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);//  MediaType 用spring框架的
            return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),   // FileUtils 选择 org.apache.commons.io.FileUtils 
                headers, HttpStatus.CREATED);  
         }

161545_JaQy_3015807.png

 

转载于:https://my.oschina.net/springMVCAndspring/blog/1821287

你可能感兴趣的文章
那天有个小孩跟我说LINQ(三)
查看>>
[AaronYang]C#人爱学不学[2]
查看>>
[ NOI 2005 ] 聪聪与可可
查看>>
Sublime Text 模板插件SublimeTmpl
查看>>
无缝滚动
查看>>
split添加limit参数
查看>>
Tomcat
查看>>
网络编程 - 实现文件传送
查看>>
Python 列表字典制作名册管理
查看>>
学习自查:目录(更新中...)
查看>>
JQuery01
查看>>
Java 详解 JVM 工作原理和流程
查看>>
对大学努力的理解
查看>>
name_save matlab
查看>>
Nginx服务器中的Socket切分,需要的朋友可以参考下
查看>>
leetcode 46. 全排列
查看>>
美团点评智能支付核心交易系统的可用性实践
查看>>
关于asp.net中链接数据库的问题
查看>>
kubernetes 1.14安装部署metrics-server插件
查看>>
IEEE754标准浮点格式
查看>>