1.遇到 IO error,是自己项目限制了上传文件的大小,我用的是ssm框架,在配置文件spring-mvc.xml文件里修改
<!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"/>
<!-- 指定所上传文件的总大小不能超过。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 -->
<property name="maxUploadSize" value="900000000000000"/>
</bean>
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"/>
<!-- 指定所上传文件的总大小不能超过。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 -->
<property name="maxUploadSize" value="900000000000000"/>
</bean>
将红色部分调到就行了。
2.遇到http 错误,404 , 运行项目出错,报 java.lang.OutOfMemoryError: Java heap space 。查看代码说的是,文件上传的太大,全部放到内存中了,需要边读变写,于是就改了下。将紫色部分改成红色部分,亲测可以,搞定。当然这里有多种方法大家可以在网上搜。
String fileName = null;
String back = null;
for(Map.Entry<String, MultipartFile> entity : fileMap.entrySet()){
MultipartFile mf = entity.getValue();
fileName = mf.getOriginalFilename();
System.out.println("fileName" + fileName + newfileName);
File uploadFile = new File(savePath+fileName);
back+=savePath+fileName+";";
try{
mf.transferTo(uploadFile);
//FileCopyUtils.copy(mf.getBytes(), uploadFile);
responseStr="上传成功";
}catch(IOException e){
responseStr="上传失败";
}
}
String back = null;
for(Map.Entry<String, MultipartFile> entity : fileMap.entrySet()){
MultipartFile mf = entity.getValue();
fileName = mf.getOriginalFilename();
System.out.println("fileName" + fileName + newfileName);
File uploadFile = new File(savePath+fileName);
back+=savePath+fileName+";";
try{
mf.transferTo(uploadFile);
//FileCopyUtils.copy(mf.getBytes(), uploadFile);
responseStr="上传成功";
}catch(IOException e){
responseStr="上传失败";
}
}