博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSH框架之SpringMVC文件上传功能代码
阅读量:6177 次
发布时间:2019-06-21

本文共 3886 字,大约阅读时间需要 12 分钟。

版权声明:本文为博主原创文章,如需转载,请标明出处。 https://blog.csdn.net/alan_liuyue/article/details/79327717

简介

  1.上一篇博客我们讲解了普遍情况下都适用的文件上传的功能代码,那么本篇博客将会重点讲解SSH框架之SpringMVC的文件上传代码;

  2.SpringMVC框架本身就已经封装了特有的文件获取和解析的方法,所以,我们之需要将这些方法熟练运用展示出即可;
  3.本篇实例将会分成四个步骤,给您展示一步到位的完善的springmvc文件上传:
  (1).需要的jar包;
  (2).jsp页面;
  (3).xml配置;
  (4).后台controller处理方法;

实例

  1.需要提供的jar包:

  
  2.jsp页面:

  3.xml文件配置:

   4.后台controller处理方法类:

/** * springMVC文件上传方法实例 * @author hqc * */@Controller@RequestMapping(value = "${adminPath}/upload")public class Uploadfile(){
/** * 单文件上传: * 用@RequestParam注解来指定表单上的file为MultipartFile * 参数都会实行自动装配~ * @param multipartfile * @return * @throws IOException */ @RequestMapping(value = "/uploadId") @ResponseBody public String idIdentification(@RequestParam("idPic") MultipartFile multipartfile) throws IOException { //测试获取到的文件信息 System.out.println("getOriginalFilename:"+multipartfile.getOriginalFilename()); System.out.println("getName:"+multipartfile.getName()); // 设置返回的文件格式,图片 //HttpHeaders headers = new HttpHeaders(); //headers.setContentType(MediaType.IMAGE_JPEG); //获取项目保存文件的根目录 String savePath = request.getSession().getServletContext().getRealPath("/uploadFile/placeImage"); //根据原文件名使用时间戳和随机数重命名,保存 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss"); String fileName = imageFile.getOriginalFilename(); String lastThreeLetter = fileName.substring(fileName.lastIndexOf(".")); String sqlName = sdf.format(new Date())+(int)(Math.random()*10000)+lastThreeLetter; //根据根目录和文件名,创建新的文件路径 File saveFile = new File(savePath+File.separator+sqlName); //将获取到的前台的文件流转换到新的文件上面 //springmvc已经封装了输入和输出流方法,无需再写输入输出流 multipartfile.transferTo(saveFile); //返回json String json = "{\"result\":\""+result+"\"}"; return json; //返回页面显示用户上传的图片 //return new ResponseEntity
(FileUtils.readFileToByteArray(saveFile), headers, HttpStatus.OK); } /** * 多文件上传: * 前台可上传多个文件,使用MultipartFile的数组形式接收 * @param multipartfiles * @return * @throws IllegalStateException * @throws IOException */ @RequestMapping(value = "/multiUploadId") public String multiUpload(@RequestParam("idPic") MultipartFile[] multipartfiles) throws IllegalStateException, IOException { //获取项目保存文件的根目录 String savePath = request.getSession().getServletContext().getRealPath("/uploadFile/placeImage"); //格式化时间戳 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss"); String timePath = sdf.format(new Date()); if(null != multipartfiles && multipartfiles.length > 0){ //遍历并保存文件 for(MultipartFile file : multipartfiles){ //1. 使用原文件名作为保存的路径 //file.transferTo(new File(savePath + file.getOriginalFilename())); //2. 针对每个文件创建不同的时间戳+随机数名称 String fileName = file.getOriginalFilename(); String lastThreeLetter = fileName.substring(fileName.lastIndexOf(".")); String sqlName = timePath+(int)(Math.random()*10000)+lastThreeLetter; //根据根目录和文件名,创建新的文件路径 File saveFile = new File(savePath+File.separator+sqlName); //将获取到的每个文件流分别转换到新的文件上面 //springmvc已经封装了输入和输出流方法,无需再写输入输出流 multipartfile.transferTo(saveFile); } } return "redirect:uploadPage"; } }

总结

  1.以上就是springMVC上传文件的全部流程,代码也是简洁方便,对于还不是很了解springmvc上传文件的程序猿还是有帮助的,有需要的可以自行复制代码,然后可以经过自己的进一步加工,形成对自己最有效的一套代码;

  
  2.实践是检验认识真理的唯一标准,代码好不好用,何不亲自动手实践看看;

你可能感兴趣的文章
谷物大脑
查看>>
访问控制-禁止php解析、user_agent,PHP相关配置
查看>>
AgileEAS.NET之系统架构
查看>>
Exchange server 2013 SP1 客户端会议室邮箱自动回复延迟
查看>>
nginx反向代理缓存服务器构建
查看>>
RHEL6 搭建LVS/DR 负载均衡集群 案例
查看>>
以太坊·Rinkeby 测试网络
查看>>
字符串按规则排序算法
查看>>
MPLS + BGP高级特性
查看>>
plist文件读写操作
查看>>
oracle resetlogs和noresetlogs 创建控制文件区别
查看>>
2013-7-17学习作业练习
查看>>
ZAM 3D入门教程(4):Extrusion编辑器
查看>>
《深入实践Spring Boot》一第2章 在Spring Boot中使用数据库2.1 使用MySQL
查看>>
C++语言基础 例程 字符串类
查看>>
堆排序
查看>>
Java的热部署(后期完善)
查看>>
css总结
查看>>
Python学习笔记之六:在VS中调用Python
查看>>
node.js获取参数的常用方法
查看>>