1.在applicationContext.xml里面配置以下xml
<!--文件上传配置文件--> <bean class="org.springframework.web.multipart.commons.CommonsMultipartResolver" id="multipartResolver"> <!--请求的编码格式必须和jsp页面的pageEncoding一致--> <property name="defaultEncoding" value="utf-8"></property> <!--上传最大最小限制--> <property name="maxUploadSize" value="2982887"/> </bean>
然后
单文件上传
@RequestMapping("/upload1") //单文件上传 public String upload1(String ms, MultipartFile mufile,Model model) throws IOException { System.out.println("========================="); //mufile.getOriginalFilename()文件名字---------D:\jq\是要保存的目录 String path="D:\\jq\\"+mufile.getOriginalFilename(); File file=new File(path); mufile.transferTo(file); System.out.println(mufile.getOriginalFilename()+"-----------------------"); model.addAttribute("mufile",mufile.getOriginalFilename()); // model.addAttribute("mufile","/springmvc_file_war_exploded/img/1001704.jpg"); return "app"; }
多文件上传
@RequestMapping("/upload1") //多文件上传 public String upload1(String ms, MultipartFile[] mufile) throws IOException { for (MultipartFile multipartFile : mufile) { //mufile.getOriginalFilename()文件名字D:\jq\是要保存的目录 String path="D:\\jq\\"+multipartFile.getOriginalFilename(); File file=new File(path); multipartFile.transferTo(file); } return null; }
第一种文件下载
//文件下载 @RequestMapping("/dowinload") public String dowinload(HttpServletRequest request, HttpServletResponse response) throws IOException { //获取当前目录下的文件路径(真实开发时数据库里面读取) String realPath=request.getServletContext().getRealPath("/up/324466.jpg"); //根据文件路径封装成FiLe File tempFile=new File(realPath); //根据File对象获得文件名 String fileName=tempFile.getName(); //设置响应头content-disposition--就是设置文件的打开方式,默认网页打开 //attachment:filename--为了以下载方式打开文件 //utf-8文件有中文就不会乱码 response.setHeader("content-disposition","attachment;filename="+URLEncoder.encode(fileName,"UTF-8")); //根据文件路径封装为文件输入流 InputStream in=new FileInputStream(realPath); int len=0; //声明一个1kb的缓冲区 byte[]buffer=new byte[1024]; //获取输出流 OutputStream out=response.getOutputStream(); //循环读取文件一次1kb,避免内存溢出 while ((len=in.read(buffer))>0){ //往客户端写入 out.write(buffer,0,len);//将缓冲区的数据输出到客户端 } in.close(); return null; }
第2种
//文件下载 @RequestMapping("/download") public ResponseEntity<byte[]> download(HttpServletResponse response,HttpServletRequest request, @RequestParam("file") String file1) throws IOException { String path=file1;//要下载的文件路径 File file=new File(path); HttpHeaders headers = new HttpHeaders(); System.out.println(file.getCanonicalPath()+"---------------------------------"); //你好.xls是后缀文件名--指定了只可以上传xls表格 String fileName=new String("你好.jar".getBytes("UTF-8"),"iso-8859-1");//为了解决中文名称乱码问题 headers.setContentDispositionFormData("attachment", fileName); headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.CREATED); }