ajaxfileupload异步上传文件时,在springmvc中通过MultipartFile获取,然后想转成File类型用于上传,用了以下方式:
//MultipartFile强转为File
CommonsMultipartFile commonsmultipartfile = (CommonsMultipartFile) multipartfile;
DiskFileItem diskFileItem = (DiskFileItem) commonsmultipartfile.getFileItem();
File file = diskFileItem.getStoreLocation();
测试时候发现报错,细心点发现10KB以下的文件才报错FileNotFoundException:
java.io.FileNotFoundException: C:\apache-tomcat-7.0.61\work\Catalina\localhost\FishManage\upload_de2e4204_56e7_4b34_adce_163e38e29654_00000003.tmp (系统找不到指定的文件。)
文件小于10kb就不生成临时文件了,问题出在配置文件上:
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8" />
<!-- 指定所上传文件的总大小不能超过2000KB。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 -->
<property name="maxUploadSize" value="2048000" />
<!-- 设置在文件上传时允许写到内存中的最大值,以字节为单位计算,默认是10240,10kb -->
<!-- 上传文件大小若小于此参数,则不会生成临时文件,故改为1024也就是1kb -->
<property name="maxInMemorySize" value="1024" />
</bean>
maxInMemorySize这个参数得改的小一点 ,比如1024也就是1kb。