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

SpringMVC框架下的文件上传(多文件)

2015-10-26 23:40 357 查看
步骤:

**1.**jar包(除了Spring框架包,好需要)

commons-fileupload-1.2.1.jar

commons-io-1.4.jar

2.编写文件上传页面,即jsp页面:

<form action="..." method="post" enctype="multipart/form-data">
<input type="file" name="phono1">
<input  type ="submit" values="点击提交">
</form>


注意:必须是post方法,enctype也必须要


3.根据Form的action属性值,编写Controller(使用注解)

@Controller
@RequestMapping("user")
public class FileUploadController {

@RequestMapping("uploadoneFile")
public String fileUpload(@RequestParam MultipartFile phono1){
....
return "fileupload-ok";
}


注意:1).这访问路径是...../user/uploadoneFile
2).MultipartFile 对象的phono1就是文件对象,可以使用该类的方法进行处理


3+.将文件上传到服务器upload文件夹下

@RequestMapping("uploadoneFile")
public String fileOneUpload(@RequestParam MultipartFile phono1,HttpServletRequest requset){
//获得绝对路径
String realPath = requset.getSession().getServletContext().getRealPath("upload");
try {
FileUtils.copyInputStreamToFile(phono1.getInputStream(), new File(realPath,phono1.getOriginalFilename()));
} catch (IOException e) {
e.printStackTrace();
}
return "fileupload-ok";
}


3++.多文件上传;不多说,迭代MultipartFile类对象依次上传

4.重要!!配置CommonsMultipartResolver的bean对象,否则MultipartFile类无效,同时springmvc对文件上传的支持工具类必须建立在导入的两个jar包之上,否则无效

<bean class="org.springframework.web.multipart.commons.CommonsMultipartResolver" id="multipartResolver">
<property name="defaultEncoding" value="UTF-8"></property>
<property name="maxInMemorySize" value="10240000"></property>
</bean>


注意:配置具体属性可以自己修改,但一定要配置该bean类


5.异常捕获(页面跳转)

<!-- 异常处理(捕获异常)-->
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<!-- 给其map属性 添加不同的异常对应不同的处理页面 -->
<property name="exceptionMappings">
<props>
<!--  key是错误类型 fileupload-error是错误跳转页面  -->
<prop key="org.springframework.web.multipart.MaxUploadSizeExceededException">fileupload-error</prop>
</props>
</property>
</bean>


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