我正在使用 Maven 和 Spring Roo 开发 RESTFul Web 服务。
在我的配置 xml 文件中,我定义了一个 multipartResolver
bean,因为我正在上传 300KB 的文件:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="400000" />
<property name="maxInMemorySize" value="400000" />
</bean>
文件上传成功并入栈。这些文件是 CommonsMultipartFile
或 MultipartFile
对象(我对这两种类型的对象都有相同的现象)。弹出文件后,我可以调用 getSize()
方法,然后我可以验证文件的大小是否正确。但是一旦我调用 getInputStream()
,我就会收到以下错误:File has been moved - cannot be read again.
我在 multipartResolver
声明中做错了吗?是否有任何其他原因导致此错误?
谢谢
最佳答案
对 getInputStream() 的调用被识别为在客户端获取文件输入流的请求。由于文件已经上传,它说“文件已被移动 - 无法再次读取”
还有,你想通过调用 getInputStream() 来做什么?如果要读取上传的文件,请使用上传位置的路径创建一个新的 FileInputStream 并访问文件内容。
关于java - MultipartResolver 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11792107/