上传文件需要满足的条件
程序员文章站
2022-06-18 17:46:25
...
前台:
<form id="documentForm" name="documentForm" action="${pageContext.request.contextPath}/document/addDocument" enctype="multipart/form-data" method="post">
<tr><td class="font3 fftd">文档:<br/> <input type="file" name="file" id="file" size="30"/>
后台:
1.在pom.xml文件中导入 jar包
https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload/1.3.3
<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
2.接收文件类型
处理器中:使用
/*文档上传=========================================================*/
@RequestMapping("/addDocument")
public String addDocument(Document document, HttpSession session,Model model) throws IOException {
//System.out.println("上传的文档为:"+ document );
//1.保存上传的文件到服务器
String path = "D:/Junior Year.first/Intellij IDEA/hrm01/src/main/webapp/upload";
//获取路径对应的文件名称
File file = new File( path );
if (!file.exists()){//上传文件的路径如果不存在
file.mkdir();//自动按照路径创建文件夹。
}
//1.获取原始文件名称,并且加前缀随机字符串:System.currentTimeMillis() +"-",保证重名文件不被覆盖
// String filename = System.currentTimeMillis() +"-"+ document.getFile().getOriginalFilename();
//2.1生成自定义长度的随机字符,并设置随机字符的长度(0, 6)。
/*String uuid = UUID.randomUUID().toString().replaceAll("-", "").substring(0, 6);
String filename = uuid +"-"+ document.getFile().getOriginalFilename();*/
//2.2或者直接简写为:(不设置长度)UUID.randomUUID().toString()+"-"
//获取原始文件名称,并且加前缀随机字符串。
String filename = UUID.randomUUID().toString()+"-" + document.getFile().getOriginalFilename();
//定义保存的文件,就是把MultipartFile转换为File,保存到服务器对应的地址。
document.getFile().transferTo( new File( path,filename) );
//2.数据库中插入对应的数据,给document的filename赋值
document.setFilename( filename );
//获取当前登陆用户,也就是文档上传者。
User login_user=(User) session.getAttribute( "login_user" );
document.setUser( login_user );
//调用service方法插入文档对应信息
int rows=documentService.addDocument(document);
if (rows>0){
PageModel pageModel =new PageModel();
int recordCound =documentService.findDocumentCount( null );
pageModel.setRecordCount(recordCound);
return "redirect:/document/findDocument?pageIndex="+pageModel.getTotelSize();
}else {
model.addAttribute( "fail","文档上传失败!" );
return "/jsp/fail.jsp";
}
}
3.在spring-mvc.xml文件中配置Multipart解析器
<!--Multipart解析器, Ctrl+Shift+a,
在弹出的提示搜索框中的Classes搜索下,查找CommonsMultipartResolver,
然后,复制全名(Copy Reference)。粘贴在class的" "值中。 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
</bean>
上一篇: 你看你像什么