Spring Upload method 文件上传
1. org.springframework.web.multipart.commons.CommonsMultipartResolver 包是Spring中用来处理的上传文件的,我们可以将配置在Spring-context.xml或者action-servlet.xml等配置文件,Spring会自己检查每次请求,如果请求中包含上传的form数据,则会利用此包来解析.例如下面配置:
?
?
public static File uploadFile(MultipartFile mf, String uploadType) throws Exception {if (mf.isEmpty() || mf.getSize() <= 0)return null;CommonsMultipartFile cmf = (CommonsMultipartFile)mf;DiskFileItem fileItem = (DiskFileItem) cmf.getFileItem();String fileType = StringUtils.substringAfter(fileItem.getName(), ".");if (fileType.equalsIgnoreCase(uploadType)) {File file = fileItem.getStoreLocation();fileItem.write(file);return file;}return null;}??
org.apache.commons.fileupload.FileItem 有DefaultFileItem, DiskFileItem 实现类,里面有很多方法,方便我们使用.
?
需要注意是在form提交时,如果用form套form可能会有问题,解决的方法就是用jquery里面ajaxfileupload.
另外如果使用ajax提交方式的话,最好是用异步提交先将文件上传,解析的文件可以放到session中, 之后在callback函数中判断是否上传成功再做下步文件处理.
?
Note:若出现
2009-4-22 16:38:55 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet action threw exception
java.lang.ClassNotFoundException: org.apache.commons.io.output.DeferredFileOutputStream
?at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
?
是因为缺少一个apache的包:commons-io-1.4.jar? 见附件
?
轉載來自:http://www.iteye.com/topic/367074
<!--EndFragment-->
?
<!--EndFragment-->
?
?