1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java ssm如何上传图片_ssm整合-图片上传功能(转)

java ssm如何上传图片_ssm整合-图片上传功能(转)

时间:2018-09-30 00:03:39

相关推荐

java ssm如何上传图片_ssm整合-图片上传功能(转)

本文介绍 ssm (Spring+SpringMVC+Mybatis)实现上传功能。

以一个添加用户的案例介绍(主要是将上传文件)。

一、需求介绍

我们要实现添加用户的时候上传图片(其实任何文件都可以)。

文件名:以 博客名+日期的年月日时分秒毫秒形式命名

如 言曌博客082516403213.png

路径:上传到 uploads 文件夹,并 生成相应的 年和月 子文件夹

如 uploads//8/言曌博客082516403213.png

数据库:将"年/月/"+文件名 存储到数据表中

如/8/言曌博客0825164809907.jpg

二、导入 Jar 包

上传功能需要额外的两个 jar 包,如下

导入 环境中

我这里使用是 Maven,添加依赖

1

2

3 commons-fileupload

4 commons-fileupload

5 1.2.2

6

7

8 commons-io

9 commons-io

10 2.4

11

三、代码结构

文件上传到如图 uploads,如果你和博主也是使用了 Maven,文件其实是上传到

ForestBlog\target\ForestBlog\resource\uploads\\8 里面,这个没影响的。

但是要要记得在 clean 之前把 \target\ForestBlog\resource\uploads 文件复制到

src\main\ForestBlog\resource\uploads 中

四、代码实现

我们这里主要看上传部分代码,其他的配置文件也贴一下吧

1、springmvc 配置 (springmvc.xml部分代码)

1

2

3

4

5

6

7

2、jsp 页面 (createUser.jsp部分代码)

1

2 method="post" enctype="multipart/form-data" >

3

4

5

3、控制器代码(UserController.java 中 添加用户类)

//添加用户提交

@RequestMapping(value = "/createUserSubmit",method =RequestMethod.POST)public String createUserSubmit(UserCustom userCustom,MultipartFile upload_avatar ) throwsException {//上传图片

if(upload_avatar.getSize()!=0) {

String newFileName=functions.uploadFile(request,upload_avatar);

userCustom.setAvatar(newFileName);

}

userCustom.setLastloginip(functions.getIpAddr(request));

userService.createUser(userCustom);return "redirect:userList.action";

}

4、上传文件代码 (functions.java 记得要注入)

1 //上传文件

2 public String uploadFile(HttpServletRequest request,MultipartFile uploadFile) throwsIOException {3 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSS");4 String res = sdf.format(newDate());5 //uploads文件夹位置

6 String rootPath =request.getServletContext().getRealPath("/resource/uploads/");7 //原始名称

8 String originalFilename =uploadFile.getOriginalFilename();9 //新的文件名称

10 String newFileName = "言曌博客"+res+originalFilename.substring(originalFilename.lastIndexOf("."));11 //创建年月文件夹

12 Calendar date =Calendar.getInstance();13 File dateDirs = newFile(date.get(Calendar.YEAR)14 + File.separator + (date.get(Calendar.MONTH)+1));15 //新文件

16 File newFile = new File(rootPath+File.separator+dateDirs+File.separator+newFileName);17 //判断目标文件所在的目录是否存在

18 if(!newFile.getParentFile().exists()) {19 //如果目标文件所在的目录不存在,则创建父目录

20 newFile.getParentFile().mkdirs();21 }22 System.out.println(newFile);23 //将内存中的数据写入磁盘

24 uploadFile.transferTo(newFile);25 //完整的url

26 String fileUrl = date.get(Calendar.YEAR)+ "/"+(date.get(Calendar.MONTH)+1)+ "/"+newFileName;27 returnfileUrl;28 }

主要关注 上传文件的方法,属性注入这里就不赘述了

写的步骤很完整、清晰

/5989.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。