首页 > 学院 > 开发设计 > 正文

表单文件上传与文件下载

2019-11-15 00:02:36
字体:
来源:转载
供稿:网友
表单文件上传与文件下载

一、简介

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

二、示例

  1、表单文件上传

  网页代码如下:

 1 <!DOCTYPE html> 2 <html> 3 <head> 4 </head> 5 <body>         6     <form action="${pageContext.request.contextPath}/file/upload.action" method="post" enctype="multipart/form-data"> 7         <div id="contentTable" style="border: 0px;"> 8             <h1 class="title" style="font-size: 15px; border-bottom: 1px solid #DFE3E6;">导入数据</h1> 9             <table width="80%">10             <tr>11                  <td width="20%"align="right">12                 选择要上传的文件 13                   </td> 14                 <td width="70%" id="name_h" title="" style="text-align: center;"> 15                 <input type="file"  name="xlsfile" id="xlsfile" />16                 </td>17                 </tr>18             </table>19             <div id="activityTable">20                  <input id="btnSave"  type="submit" value="导&nbsp;入" />21             </div>22         </div>23     </form>24 </body>25 </html>

  后端上传处理代码:

 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=" + fileName);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         }

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表