我是靠谱客的博主 冷酷老虎,这篇文章主要介绍SpringMVC day02 JavaWeb文件上传 及 文件名称出错解决,现在分享给大家,希望可以做个参考。

JavaWeb文件上传

  1. 导入相关pom坐标
复制代码
1
2
3
4
5
6
7
8
9
10
11
<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-core</artifactId> <version>1.18.1</version> </dependency>
  1. 作为最基础的文件上传方式,不使用SpringMVC框架,按照如下步骤撰写相关代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//1.确定上传的位置,Web项目中使用request传输文件 String path = request.getSession().getServletContext().getRealPath("/uploads/"); //path即为上传文件存储位置 System.out.println(path); //1.1判断路径是否存在 File file = new File(path); if (!file.exists()){ //1.2文件不存在,创建文件 file.mkdirs(); } //2.解析request对象,获取上传文件 //2.1 创建磁盘文件项工厂 DiskFileItemFactory factory = new DiskFileItemFactory(); //2.2 创建上传文件对象 ServletFileUpload upload = new ServletFileUpload(factory); //2.3 解析request内存出的文件对象 List<FileItem> items = upload.parseRequest(request); //遍历 for (FileItem item : items) { //进行判断 是否是上传文件项 if (item.isFormField()){ //是表单项 }else { String name = item.getName(); String uuid = UUID.randomUUID().toString().replace("-", ""); name = uuid + "_" + name; //完成文件上传 item.write(new File(path,name)); //删除文件,更新内存 item.delete(); } }

使用SpringMVC框架完成文件上传

使用SpringMVC框架简化了解析request的步骤,只需完成如上中定义存储路径等步骤

  • 配置springmvc.xml中相关解析器

注意:该bean标签id属性只能为multipartResolver

复制代码
1
2
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"></bean>
  • 撰写相关后台代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//1.确定上传的位置 String path = request.getSession().getServletContext().getRealPath("/uploads/"); System.out.println(path); //1.1判断路径是否存在 File file = new File(path); if (!file.exists()){ //创建文件 file.mkdirs(); } //2.读取request解析后的文件,存储的位置是tomcat的位置 String fileName = upload.getOriginalFilename(); String uuid = UUID.randomUUID().toString().replace("-", ""); //2.1避免覆盖 解决文件名出错,可进行+uuid设置 fileName = uuid+fileName ; upload.transferTo(new File(file,fileName)); return "success";

注意

  • 当显示文件名称出错等问题时,且为了避免出现文件覆盖等问题,可设置唯一Uuid,当设置唯一标识后,文件即读取成功。
  • 可尝试换一浏览器进行文件上传,上传都在request中,使用EE浏览器上传出错,出现文件读取失败,但谷歌浏览器上传成功。
  • 使用tomcat启动服务器时,极易产生404错误,当显示该线程已经被占用时,换其他HTTP port仍显示404错误,重启电脑后,服务器启动成功,跳转首页。

最后

以上就是冷酷老虎最近收集整理的关于SpringMVC day02 JavaWeb文件上传 及 文件名称出错解决的全部内容,更多相关SpringMVC内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部