spring - mvc.xml 里配置
<!-- SpringMVC上传文件-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 默认编码 -->
<property name="defaultEncoding" value="utf-8" />
<!-- 文件大小最大值 -->
<property name="maxUploadSize" value="10485760000" />
<!-- 内存中的最大值 -->
<property name="maxInMemorySize" value="40960" />
<property name="uploadTempDir" value="fileUpload/temp"/>
</bean>
<form action="地址" method="post" enctype="multipart/form-data">
选择文件:<input type="file" name="file">
<input type="submit" value="提交">
</form>
在控制层 @RequestParam("file")MultipartFile file 传入
if (!file.isEmpty()) {
// 文件保存路径 拼接地址中间用 “\\” 最后用 “/” 不然会报错,我也不知道为什么。
String filePath = request.getSession().getServletContext().getRealPath("/");
String timePath = "upload\\" + GenerateSequenceUtil.setDate() + "/"; //upload 后面跟上一个日期工具类
File uploadDir = new File(filePath + timePath);
if (!uploadDir.exists()) {
uploadDir.mkdir();
}
// 转存文件
try {
file.transferTo(new File(uploadDir , file.getOriginalFilename()));
} catch (Exception e) {
e.printStackTrace();
}
String url = request.getRequestURL().toString(); //获取请求信息
String [] url_arr = url.split("/");
String loadUrl =url_arr[0] + "//" + url_arr[2] +"/"+ timePath + file.getOriginalFilename();//根据需要拼接链接地址。
/*=========================================================多个文件保存===================================================*/
<form action="filesUpload.html" method="post"
enctype="multipart/form-data">
<p>
选择文件:<input type="file" name="files">
<p>
选择文件:<input type="file" name="files">
<p>
选择文件:<input type="file" name="files">
<p>
<input type="submit" value="提交">
</form>
/**
*多个文件保存
*/
public String filesUpload(@RequestParam("files") MultipartFile[] files) {
//判断file数组不能为空并且长度大于0
if(files!=null&&files.length>0){
//循环获取file数组中得文件
for(int i = 0;i<files.length;i++){
MultipartFile file = files[i];
//保存文件
saveFile(file);
}
}
// 重定向
return "redirect:/list.html";
}
/***
* 保存文件
* @param file
* @return
*/
private boolean saveFile(MultipartFile file) {
// 判断文件是否为空
if (!file.isEmpty()) {
try {
// 文件保存路径
String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/"
+ file.getOriginalFilename();
// 转存文件
file.transferTo(new File(filePath));
return true;
} catch (Exception e) {
e.printStackTrace();
}
}
return false;
}