适用于ssm框架的文件上传下载

    xiaoxiao2021-03-25  107

    springmvc文件上传下载实现起来非常简单,此springmvc上传下载案例适合已经搭建好的ssm框架(spring+springmvc+mybatis)使用,ssm框架项目的搭建我相信你们已经搭建好了,这里不再赘述,下面就开始吧!

    ssm框架整合详情请看:http://www.tpyyes.com/a/javaweb/2016/1103/23.html

    1.首先我们创建一个测试用的jsp页面,代码如下。

    [html] view plain copy

    <%@ 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=ISO-8859-1">   <title>文件上传下载</title>   </head>   <body>       <form action="http://localhost:8080/uploadDemo/rest/file/upload" method="post" enctype="multipart/form-data">           选择文件:<input type="file" name="file" width="120px">           <input type="submit" value="上传">       </form>       <hr>       <form action="http://localhost:8080/uploadDemo/rest/file/down" method="get">           <input type="submit" value="下载">       </form>   </body>   </html>  

    2.在我们的maven项目的pom.xml文件中添加fileupload文件上传下载jar包,不然后面的操作可能会报错,如下。

    [html] view plain copy

    <!-- 文件上传 -->   <dependency>   <groupId>commons-fileupload</groupId>   <artifactId>commons-fileupload</artifactId>   <version>1.3</version>   </dependency>  

    3.springservlet视图解析器下面定义CommonsMultipartResolver文件解析器,就是加入这个的时候运行项目,如果没有fileuload相关的jar包就会报错。

    [html] view plain copy

    <!-- 定义文件解释器 -->   <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">         <!-- 设置默认编码 -->       <property name="defaultEncoding" value="utf-8"></property>       <!-- 上传图片最大大小5M-->        <property name="maxUploadSize" value="5242440"></property>     </bean>  

    4.controller层写上springmvc上传下载的代码,如下。

    [html] view plain copy

    package com.baidu;   @RequestMapping("file")   @Controller   public class FileController {       /**        * 文件上传功能        * @param file        * @return        * @throws IOException         */       @RequestMapping(value="/upload",method=RequestMethod.POST)       @ResponseBody       public String upload(MultipartFile file,HttpServletRequest request) throws IOException{           String path = request.getSession().getServletContext().getRealPath("upload");           String fileName = file.getOriginalFilename();             File dir = new File(path,fileName);                   if(!dir.exists()){               dir.mkdirs();           }           //MultipartFile自带的解析方法           file.transferTo(dir);           return "ok!";       }              /**        * 文件下载功能        * @param request        * @param response        * @throws Exception        */       @RequestMapping("/down")       public void down(HttpServletRequest request,HttpServletResponse response) throws Exception{           //模拟文件,myfile.txt为需要下载的文件           String fileName = request.getSession().getServletContext().getRealPath("upload")+"/myfile.txt";           //获取输入流           InputStream bis = new BufferedInputStream(new FileInputStream(new File(fileName)));           //假如以中文名下载的话           String filename = "下载文件.txt";           //转码,免得文件名中文乱码           filename = URLEncoder.encode(filename,"UTF-8");           //设置文件下载头           response.addHeader("Content-Disposition", "attachment;filename=" + filename);             //1.设置文件ContentType类型,这样设置,会自动判断下载文件类型             response.setContentType("multipart/form-data");            BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());           int len = 0;           while((len = bis.read()) != -1){               out.write(len);               out.flush();           }           out.close();       }   }  

    springmvc上传下载很方便,代码直接复制使用。

    转载请注明原文地址: https://ju.6miu.com/read-25192.html

    最新回复(0)