Spring上传文件问题

yaojie1018 2008-07-17 10:54:54
我有一个页面需要上传文件,我控制器用的SimpleFomController,文件上传对应form里面的字段类型为MultipartFile类型,为什么我上传稍微大点的文件就报java.lang.IllegalStateException: File has been moved - cannot be read again的错误阿,我调用file.getInputStream();的时候报出来的,file是一个MultipartFile对象
上传小的zip文件没有问题,这个是怎么回事阿?
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设置上传文件的最大尺寸为10MB -->
<property name="maxUploadSize">
<value>10485760</value>
</property>
<property name="defaultEncoding">
<value>utf-8</value>
</property>
<property name="uploadTempDir">
<value>upload/temp/</value>
</property>
</bean>这个我也配置了
...全文
443 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
桀骜心 2012-09-22
  • 打赏
  • 举报
回复
配置加个参数<!-- default:10240 -->
<property name="maxInMemorySize">
<value>1638400</value>
</property>

这个默认是10K 设成16M好了 大于这个大小的文件会放到临时目录 当你读取的时候 判断的avaliable参数是false 因为已经不在内存里了 所以会报异常 所以一般你超过10K就挂了
小雨转晴 2008-07-18
  • 打赏
  • 举报
回复
帮顶
yaojie1018 2008-07-17
  • 打赏
  • 举报
回复
上面写错了,我用的是AbstractWizardFormController,因为我的功能需要分步骤进行
yaojie1018 2008-07-17
  • 打赏
  • 举报
回复
我跟了一下代码,发现是CommonsMultipartFile类的protected boolean isAvailable()方法中((DiskFileItem) this.fileItem).getStoreLocation().exists();这句话返回了false,真不知道是怎么回事,还请大家帮帮忙
yaojie1018 2008-07-17
  • 打赏
  • 举报
回复
没人回答,我自己顶,我用的是AbstractWizardFormController,在processFinish方法中进行上传文件的提交好像有问题,目前的解决方式是在referenceData方法中进行上传文件的提交,这样可以。
希望各位高手们给出个理由,问题虽然解决了,但是还是不太明白为什么会这样

67,511

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧