文件上传的条件:
前台:
1.有文件上传的输入框< input type = “flie”>
文档标题:
<input type="file" name="file" id="file" size="30"/>
2.form表单的请求方式必须是post
<form id="documentForm" name="documentForm" action="${pageContext.request.contextPath}/document/addDocument" enctype="multipart/form-data" method="post">
3.form表单的enctype="multipart/form-data "
后台:
1.需要文件上传的JAR包
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
2.接受文件的类型必须是MultipartFile
在这里插入代码片
3.配置Multipart解析器
<!--配置Multipart解析器-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
4.具体实现过程
@RequestMapping("/addDocument")
public String addDocument(Document document, HttpSession session,Model model) throws IOException {
//1.保存上传的文件到服务器
String path="D:/upload";
File file=new File(path); //获取路径对应的文件
if(!file.exists()){//判断文件路径是否存在
file.mkdirs(); //创建对应的路径
}
//重名文件不被覆盖
String filename=System.currentTimeMillis()+"-"+document.getFile().getOriginalFilename(); //获取原始文件名称
document.getFile().transferTo(new File(path,filename));//定义保存的文件,就是把multipartfile转化为File,保存搭配服务器对应地址
//2.数据库中加入对应数据, 给Document的filename赋值
document.setFilename(filename);
User login_user=(User)session.getAttribute("login_user");//获取当前登录用户,也就是文件上传者
document.setUser(login_user);
int rows=documentService.addDocument(document);//调用service层方法插入文档对应信息
if(rows>0){
PageModel pageModel=new PageModel();
int recordCount=documentService.findDocumentCount(null);
pageModel.setRecordCount(recordCount);
return "redirect:/document/findDocument?pageIndex="+pageModel.getTotalSize(); //加上redirect是查询全部信息
}else{
model.addAttribute("fail","文档上传失败");
return "/jsp/fail.jsp";
}
}