上传文件需要在配置文件中配置MultipartResolver处理器:
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设置上传文件的最大尺寸为500K -->
<property name="maxUploadSize">
<value>1024000000</value>
</property>
</bean>
后台:
1,在Controller中接受文件MultipartHttpServletRequest multipartHttpServletRequest
List<MultipartFile> multipartFiles = multipartHttpServletRequest.getFiles("file");
2,获取上传文件的名字
String fileNmae = multipartFile.getOriginalFilename();
3,获取上传文件的扩展名,通过文件名获取
String fileExtension = FilenameUtils.getExtension(fileNmae);
4,设置文件的保存目录
String prefix = DatetimeUtils.getNowDateString();用当前的系统时间作为目录;
String path = profilePath + imageFilePath +File.separator+ prefix;
File upImageFile = new File(path);
if(!upImageFile.isDirectory()){目录不存在的话创建目录
upImageFile.mkdirs();
}
5,设置保存在目录下的文件的名字
String fname = RandomUtil.getUUID()+FilenameUtils.EXTENSION_SEPARATOR+fileExtension;
path += File.separator+fname;
upImageFile = new File(path);
6,将上传文件的内容写入保存的文件中
FileUtil.writeByteArrayToFile(upImageFile, multipartFile.getBytes());
js代码:需要下载jquery.form的插件,html中form表单的表头中需要加上:enctype="multipart/form-data"
$(function () {
//ajaxForm提交表单
var ajaxFormOption = {
type:'post', //提交方式
dataType: "json", //数据类型
data: $("#form-member-add"),//自定义数据参数,视情况添加
url: "${basePath}medicine/addSave", //请求url
success: function (json) { //提交成功的回调函数
if(json.success == true){
layer.confirm(json.message, {
btn: ['确定'],
shade: false,
closeBtn: 0
},
function(){
parent.location.replace(parent.location.href);
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
}
);
}
}
};
$("#form-member-add").ajaxForm(ajaxFormOption);
});