Spring Boot文件上传与下载
来源:互联网 发布:美国数据安全管理规定 编辑:程序博客网 时间:2024/06/16 22:47
Spring Boot文件上传与下载
1.文件上传
@Controllerpublic class FileUploadController { /** * 单文件上传 * * @param request * @param multipartHttpServletRequest * @return */ @RequestMapping(path = { "file" }, method = { RequestMethod.POST }) @ResponseBody public String fileUpload(HttpServletRequest request, MultipartHttpServletRequest multipartHttpServletRequest) { MultipartFile file = multipartHttpServletRequest.getFile("file"); String originalFilename = file.getOriginalFilename(); System.out.println("上传文件的原文件名为 : " + originalFilename); String[] split = originalFilename.split("\\."); String fileType = split.length > 1 ? split[split.length - 1] : null; System.out.println("文件类型为 : " + split[split.length - 1]); String fileName = UniqueUtil.generate(); String name = null; if (null == fileType || "".equals(fileType)) { // 无文件类型 name = "D:\\workspace\\SpringBootDemo\\" + fileName; } else { name = "D:\\workspace\\SpringBootDemo\\" + fileName + "." + fileType; } FileOutputStream out = null; FileInputStream in = null; try { out = new FileOutputStream(name); in = (FileInputStream) file.getInputStream(); byte[] buffers = new byte[1024]; while (in.read(buffers) != -1) { out.write(buffers); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { in.close(); out.close(); } catch (IOException e) { e.printStackTrace(); } } return "上传成功!"; } /** * 多文件上传 * * @param multipartHttpServletRequest * @return */ @RequestMapping(path = { "multiFile" }, method = { RequestMethod.POST }) @ResponseBody public String multiFile(MultipartHttpServletRequest multipartHttpServletRequest) { Iterator<String> fileNames = multipartHttpServletRequest.getFileNames(); while (fileNames.hasNext()) { List<MultipartFile> files = multipartHttpServletRequest.getFiles(fileNames.next()); Iterator<MultipartFile> iterator = files.iterator(); while (iterator.hasNext()) { String saveFile = saveFile(iterator.next()); System.out.println("上传文件成功 : " + saveFile); } } return null; } private String saveFile(MultipartFile file) { String originalFilename = file.getOriginalFilename(); System.out.println("上传文件的原文件名为 : " + originalFilename); String[] split = originalFilename.split("\\."); String fileType = split.length > 1 ? split[split.length - 1] : null; System.out.println("文件类型为 : " + split[split.length - 1]); String fileName = UniqueUtil.generate(); String name = null; if (null == fileType || "".equals(fileType)) { // 无文件类型 name = "D:\\workspace\\SpringBootDemo\\" + fileName; } else { name = "D:\\workspace\\SpringBootDemo\\" + fileName + "." + fileType; } FileOutputStream out = null; FileInputStream in = null; try { out = new FileOutputStream(name); in = (FileInputStream) file.getInputStream(); byte[] buffers = new byte[1024]; while (in.read(buffers) != -1) { out.write(buffers); } return fileName + fileType; } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { in.close(); out.close(); } catch (IOException e) { e.printStackTrace(); } } return null; }}
2.文件下载
@Controllerpublic class FileController { @RequestMapping(path = { "download" }, method = { RequestMethod.GET }) public void download(String fileName, HttpServletResponse response) { response.setHeader("content-type", "application/octet-stream"); response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment;filename=" + fileName); byte[] buffers = new byte[1024]; BufferedInputStream in = null; OutputStream out = null; try { out = response.getOutputStream(); in = new BufferedInputStream(new FileInputStream("D:\\workspace\\SpringBootDemo\\" + fileName)); while (in.read(buffers) != -1) { out.write(buffers); } } catch (IOException e) { e.printStackTrace(); } finally { try { in.close(); out.close(); } catch (Exception e2) { // TODO: handle exception } } }}
阅读全文
0 0
- Spring Boot文件上传与下载
- spring boot(23)-文件上传与下载
- spring boot文件上传、下载
- Spring Boot入门——文件上传与下载
- spring文件上传与下载
- Spring boot 文件上传
- spring boot 文件上传
- Spring-boot 文件上传
- Spring Boot 文件上传
- spring-boot 文件上传
- Spring 实现文件上传与下载
- spring mvc文件上传与下载
- Spring MVC 实现文件上传与下载
- Spring mvc 文件的上传与下载
- Spring MVC之文件上传与下载
- spring+mongodb 文件上传与下载实现
- Spring MVC 文件上传与下载
- Spring MVC 文件上传与下载
- angular
- Java -- 泛型
- 关于高斯消元
- poj1390 (区间dp)
- Android源码目录结构详解
- Spring Boot文件上传与下载
- 机器学习之用Python从零实现贝叶斯分类器
- 测试对bug如何分析和定位
- 倒计时五种方法,方法五:Handler与Runnable(最简单型)
- 【模板】tarjan
- 模糊查询存储过程
- C#中的委托跟事件
- JavaScript操作SELECT中option大全
- CCF—学生排队问题 20170302