博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
表单文件上传与文件下载
阅读量:6111 次
发布时间:2019-06-21

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

一、简介

  使用form表单进行需要为form添加enctype="multipart/form-data" 属性,除此之外还需要将表单的提交方法改成post,如下 method="post"。

二、示例

  1、表单文件上传

  网页代码如下:

1  2  3  4  5          6     
7
8

导入数据

9
10
11
14
17
18
12 选择要上传的文件 13 15 16
19
20
21
22
23
24 25

  后端上传处理代码:

1     /** 2     *使用springmvc处理文件上传 3     */ 4     @RequestMapping("upload") 5     @ResponseBody 6     public boolean upload(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws UnsupportedEncodingException { 7         String path = request.getSession().getServletContext().getRealPath(""); 8         Calendar calendar = Calendar.getInstance(); 9         calendar.setTime(new Date());10         request.setCharacterEncoding("UTF-8");11         path = String.format("%s\\%s\\%s\\%s\\%s\\%s", path, "upload", "file", calendar.get(calendar.YEAR),12                 calendar.get(calendar.MONTH), calendar.get(calendar.DAY_OF_MONTH));13         File filepath = new File(path);14         if (!filepath.exists()) {15             filepath.mkdirs();16         }17          MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;18         获得文件19         MultipartFile multipartFile = multipartRequest.getFile("xlsfile");20         OutputStream os = null;21         InputStream is = null;22         File uploadFile = null;23         try {24             is = multipartFile.getInputStream();25             uploadFile = new File(filepath, System.currentTimeMillis() + ".xls");26             os = new FileOutputStream(uploadFile);27             IOUtils.copy(is, os);//使用commons-io组件进行文件流的处理28             os.flush(); 29         } catch (IOException e) {30             e.printStackTrace();31             return false;32         }finally{33             IOUtils.closeQuietly(os);34             IOUtils.closeQuietly(is);35         }36     return true;37 }

  2、文件下载

1     /** 2     *使用springmvc进行文件下载处理 3     */ 4     @RequestMapping({ "/template" }) 5     public void downloadTemplate(HttpServletRequest request, HttpServletResponse response) 6             throws UnsupportedEncodingException { 7         String path = request.getSession().getServletContext().getRealPath(""); 8         String filename = "模板文件.xls"; 9         File file = new File(path +  "\\file\\templagte\\" + filename);10         String userAgent = request.getHeader("User-Agent");11         byte[] bytes = userAgent.contains("MSIE") ? filename.getBytes() : filename.getBytes("UTF-8"); // fileName.getBytes("UTF-8")处理safari的乱码问题12         String fileName = new String(bytes, "ISO-8859-1"); 13         // 设置输出的格式14         response.setContentType("multipart/form-data");15         response.setHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(fileName, "UTF-8"));16         17         InputStream inStream = null;18         try {19             inStream = new FileInputStream(file);20             IOUtils.copy(inStream, response.getOutputStream());//使用commons-io组件进行文件流的处理21         } catch (IOException e) {22             e.printStackTrace();23         }finally{24             IOUtils.closeQuietly(inStream);25         }

转载于:https://www.cnblogs.com/always-online/p/4476314.html

你可能感兴趣的文章
聊聊架构设计做些什么来谈如何成为架构师
查看>>
Java并发编程73道面试题及答案
查看>>
iOS知识小集·设置userAgent的那件小事
查看>>
移动端架构的几点思考
查看>>
Tomcat与Spring中的事件机制详解
查看>>
Spark综合使用及用户行为案例区域内热门商品统计分析实战-Spark商业应用实战...
查看>>
初学者自学前端须知
查看>>
Retrofit 源码剖析-深入
查看>>
企业级负载平衡简介(转)
查看>>
ICCV2017 论文浏览记录
查看>>
科技巨头的交通争夺战
查看>>
当中兴安卓手机遇上农行音频通用K宝 -- 卡在“正在通讯”,一直加载中
查看>>
Shell基础之-正则表达式
查看>>
JavaScript异步之Generator、async、await
查看>>
讲讲吸顶效果与react-sticky
查看>>
c++面向对象的一些问题1 0
查看>>
直播视频流技术名词
查看>>
网易跟贴这么火,背后的某个力量不可忽视
查看>>
企业级java springboot b2bc商城系统开源源码二次开发-hystrix参数详解(八)
查看>>
java B2B2C 多租户电子商城系统- 整合企业架构的技术点
查看>>