概述
JavaWeb文件上传
- 导入相关pom坐标
<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>
- 作为最基础的文件上传方式,不使用SpringMVC框架,按照如下步骤撰写相关代码
//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
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"></bean>
- 撰写相关后台代码
//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 day02 JavaWeb文件上传 及 文件名称出错解决所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复