您的位置:首页 > 编程语言 > Java开发

Spring上传文件学习笔记

2015-07-02 15:02 441 查看
//采用这种方法,spring配置文件中必须加上这句<property name="resolveLazily" value="true"/>

MultipartResolver resolver = new CommonsMultipartResolver(request.getSession().getServletContext());

使用springMVC对文件上传的解析器来处理文件上传的时候需要在spring的applicationContext里面加上springMVC提供的MultipartResolver的申明这样客户端请求的时候
springMVC会检查request里面是否包含多媒体信息 如果包含了就会使用MultipartResolver进行解析,springMVC会使用一个支持文件 处理的MultipartHttpServletRequest来包裹当前的HttpServletRequest然后使用MultipartHttpServletRequest就可以对文件进行处理了。
一、配置文件:

SpringMVC 用的是 的MultipartFile来进行文件上传 所以我们首先要配置MultipartResolver:用于处理表单中的file

二、创建一个简单的上传表单:

<form action="myAuthIncome/authImageUpload" method="post" enctype="multipart/form-data">

选择文件:<input type="file" name="file">

<input type="submit" value="提交">

</form>

注意要在form标签中加上enctype="multipart/form-data"表示该表单是要处理文件的,这是最基本的东西

三、编写上传控制类

MultipartResolver resolver = new CommonsMultipartResolver(request.getSession().getServletContext());

if (resolver.isMultipart(request)) {

StringBuffer sb = new StringBuffer();

String randomName = StringUtil.getRandomFileName();

logger.info("随机生成新的文件名 : "+randomName);

String uploadFileName = incomeCer.getOriginalFilename();

String newFileName = "";

if(StringUtils.isNotBlank(uploadFileName)){

String suffix = uploadFileName.substring(uploadFileName.indexOf("."));

newFileName = randomName+suffix;

String savePath = basePath+"/"+newFileName;

File saveFile = new File(savePath);

File parentFile = saveFile.getParentFile();

if(saveFile.exists()) {

saveFile.delete();

}else {

if (!parentFile.exists()) {

parentFile.mkdirs();

}

}

FileUtils.copyInputStreamToFile(incomeCer.getInputStream(), saveFile);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: