文章目录
- 文件上传与下载
- 1.下载
- 2.上传
文件上传与下载
1.下载
@RequestMapping("/testDown")public ResponseEntity<byte[]> testResponseEntity(HttpSession session) throws IOException {//获取servletcontext对象ServletContext servletcontext=session.getServletContext();//获取服务器中文件的真实路径String realPath=servletcontext.getRealPath("/static/img/1.jpg");System.out.println(realPath);//创建输入流IInputStream is = new FileInputStream(realPath);//创建字节数组byte[] bytes =new byte[is.available()];//将流读到字节数组中is.read(bytes);//创建HttpHeaders对象设置响应头信息MultiValueMap<String,String> headers = new HttpHeaders();//设置要下载方式以及下载文件的名字 只有1.jpg可以修改headers.add("content-Disposition","attachment;filename=1.jpg");//设置响应状态码HttpStatus statuscode = HttpStatus.OK;//创建ResponseEntity对象ResponseEntity<byte[]> responseEntity = new ResponseEntity<>(bytes, headers, statuscode);//关闭输入流is.close();return responseEntity;}
2.上传
2.1添加依赖
pom.xml
<dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.1</version>
</dependency>
2.2.配置文件上传解析器
SpringMVC配置文件
<!-- 配置文件上传解析器,将上传文件封装成MultipartFile对象--><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" ></bean>
2.3
@RequestMapping("/testUp")public String testUp(MultipartFile photo ,HttpSession session) throws IOException {String fileName = photo.getOriginalFilename();//获取上传的文件的后绿名String suffixName = fileName.substring(fileName.lastIndexOf("."));//将UUID作为文件名String uuid = UUID.randomUUID().toString();//将uuid和后缀名拼接后的结果作为最终的文件名fileName = uuid + suffixName;ServletContext servletContext=session.getServletContext();String photoPath=servletContext.getRealPath("photo");File file = new File(photoPath);//判断photoPath所对应路径是否存在if(!file.exists()) {//若不存在,则创建目录file.mkdir();}String finalPath = photoPath + File.separator + fileName;photo.transferTo(new File(finalPath));return "target";}