spring文件上传
jsp部分:
<form action="/fileUpload" enctype="multipart/form-data" method="post">
<input type="file" name="file">
<input type="submit" value="上传">
</form>
controller:
public void fileUpLoad(HttpServletRequest request,@RequestParam("file") MultipartFile file) throws Exception{
if(!file.isEmpty())
{
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String strDate = sdf.format(date);
String fileName=file.getOriginalFilename();
String fileNo=strDate+fileName;
String prefix=fileName.substring(fileName.lastIndexOf(".")+1);
String path="D:/file/"+fileNo+"."+prefix;
file.transferTo(new java.io.File(path));
}
}
配置文件:
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="1024000000"/>
<property name="defaultEncoding" value="UTF-8"/>
</bean>
注意:
- form中的属性名和controller参数对应,enctype=”multipart/form-data”
- 配置文件中的bean id=”multipartResolver”不能省略更改,记得导入jar包commons-io,commons-fileupload
- 稳重点判断文件夹是否存在
- 考虑到文件批量上传问题最好重新命名保存,做法1:取时间,精确到毫秒+文件名称hashcode.如果要求文件名称保持长度一致则需截取.2.时间加几位随机数,随机数生成时加入时间搓.3.时间加UUID