我是靠谱客的博主 粗犷小笼包,最近开发中收集的这篇文章主要介绍Springmvc+java+Jsp实现文件上传功能,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

这里是一个简单实现文件上传功能的几个步骤及代码,以上传图片为例:

(整理不易,参考使用,记得点赞)

1.在开始前先配置springmvc.xml里的配置和导入用于上传文件的jar包:

<!-- 配置bean来帮助实现上传文件操作 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
</bean>

2.在Jsp页面用file表单类接收客户端选择的文件:

这里需要注意的是上传文件时提交信息的form表单要加上一个enctype="multipart/form-data"标签

<!-- 如果提交的内容有需要上传文件信息,需要添加一个参数就是enctype="multipart/form-data" -->
<form action="add" method="post" enctype="multipart/form-data">
<!-- 上传文件的表单 -->
<p>头像:<input type="file" name="headimg"/></p>
<p><input type="submit" value="新增"/></p>

3.在controller控制层接收传来的文件进行处理:

在servlet层这里对传来的文件进行了获取文件绝对路径,截取文件后缀名,生成新的文件名方便存到数据库当中等等操作,具体代码以及详细注释:

/**
* 上传文件
* 需要上传头像,图片文件
* 需要在方法参数里加上HttpServletRequest request来接收,springmvc会自动帮我们封装
*/
@RequestMapping("add")
public String add(Student stu,MultipartFile headimg,HttpServletRequest request){
//判断传来的文件不等于空长度要大于0
if(headimg!=null && headimg.getSize()>0){
//我们要得到存放头像像的文件夹路径就需要现在参数里创建application对象
//然后通过该对象获得根目录下的headimg文件夹的绝对路径
String bastpath = request.getServletContext().getRealPath("headimg");
//获得了根目录我们就可以把MultipartFile headimg对象写到根目录下面去
//这时需要获取上传文件的名称以获取后缀名
String upfilename = headimg.getOriginalFilename();
String suffix = upfilename.substring(upfilename.lastIndexOf("."));
//动态生成一个32位不重复的文件名
String filename = UUID.randomUUID()+suffix;
//把上传的文件写入到指定的路径里去
try {
headimg.transferTo(new File(bastpath+"/"+filename));
} catch (Exception e) {
}
//将路径保存到实体中,存入到数据库
stu.setImgpath(filename);
}
if(studentService.addStudent(stu)){
//这里使用重定向跳转到show请求里,而不是跳转到show.jsp页面
return "redirect:/show";
}
return "redirect:/addpage";
}

4.接下来业务逻辑层就是对controller存入的对象添加到数据库的一个操作

控制层将对象传到service层再调用dao层的新增方法将数据以文件路径的方式存到数据库中,这里比较简单,直接上代码:

public boolean addStudent(Student stu) {
if(studentDao.add(stu)>0){
return true;
}
return false;
}

对数据库的操作时在mapper映射文件中完成的

<insert id="add">
insert into student values(null,#{sname},#{birthday},#{sex},#{clz.cid},#{imgpath})
</insert>

5.在客户端查看保存的图片

这里需要控制层传一个对象到request作用域,然后在jsp页面接收,在jsp页面用一个img标签然后拼接上数据库传来的储存地址实现显示图片的功能

<!-- 显示上传的学生头像 -->
<img alt="头像" src="/headimg/${student.imgpath}">

最后

以上就是粗犷小笼包为你收集整理的Springmvc+java+Jsp实现文件上传功能的全部内容,希望文章能够帮你解决Springmvc+java+Jsp实现文件上传功能所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部