笔记---上传下载代码

来源:互联网 发布:2017天猫双11销售数据 编辑:程序博客网 时间:2024/06/05 07:39
@Controllerpublic class UpAndDownFile {@RequestMapping(value="/testUp.do", method=RequestMethod.POST)public String testUp(HttpServletRequest req,@ModelAttribute User user)throws IOException{save(user);return "ok.jsp";}@RequestMapping(value="testUp1.do", method = RequestMethod.POST)@ResponseBodypublic JsonResult<Object> testUp1(HttpServletRequest req ,@ModelAttribute User user) throws IOException{System.out.println("testUp1()...");//save(user);return new JsonResult<Object>();}private void save(User user) throws IOException {if(user.getImage().isEmpty()) {throw new RuntimeException("上传文件为空");}if("123".equals(user.getUsername())){throw new RuntimeException("换一个名字");}String path = ReadConfig.getPath("path");String filename = user.getImage().getOriginalFilename();//filename = UUID.randomUUID()+filename.substring(filename.lastIndexOf("."));File file = new File(path,filename);if(!file.getParentFile().exists()){file.getParentFile().mkdirs();}user.getImage().transferTo(new File(path+File.separator+filename));}//处理异常    @ResponseBody      @ExceptionHandler(Exception.class)      public JsonResult<Object> exHandler(Exception e){          e.printStackTrace();          return new JsonResult<Object>(e);      }  //下载:两种方式      @RequestMapping(value="/download.do")      public void downLoad (HttpServletResponse res ,@RequestParam("filename") String filename)throws Exception {          System.out.println(filename);             String path = ReadConfig.getPath("path");             File file = new File(path + File.separator + filename);             res.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8"));             FileInputStream in = new FileInputStream(file);             OutputStream out = res.getOutputStream();             byte[] buffer = new byte[1024];             int len = 0;             while((len=in.read(buffer))>0){             out.write(buffer, 0, len);             }             in.close();            out.flush();             out.close();                }      @RequestMapping(value="/download1.do")      public ResponseEntity<byte[]> download1(@RequestParam("filename") String filename)throws Exception {                  System.out.println(filename);         String downFilename = new String(filename.getBytes("utf-8"),"ISO-8859-1");         String path = ReadConfig.getPath("path");         File file = new File(path + File.separator + filename);         HttpHeaders headers = new HttpHeaders();          headers.setContentDispositionFormData("attachment", downFilename);          headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);         return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),                     headers, HttpStatus.CREATED);        }}