【问题标题】:MultipartResolver is not workingMultipartResolver 不工作
【发布时间】:2015-02-03 15:28:56
【问题描述】:

我正在使用 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>

文件上传成功并入栈。这些文件是CommonsMultipartFileMultipartFile 对象(我对这两种类型的对象都有相同的现象)。一旦我弹出一个文件,我可以调用getSize() 方法,我可以验证文件的大小是否正确。但是一旦我打电话给getInputStream(),我就会收到以下错误:File has been moved - cannot be read again.

我在multipartResolver 声明中做错了吗?还有其他原因会出现此错误吗?

谢谢

【问题讨论】:

    标签: java rest file-upload spring-roo multipart


    【解决方案1】:

    对 getInputStream() 的调用被识别为在客户端获取文件输入流的请求。由于文件已经上传,它说“文件已被移动 - 无法再次读取”

    您还想通过调用 getInputStream() 来做什么?如果要读取上传的文件,请使用上传位置的路径创建一个新的 FileInputStream 并访问文件内容。

    【讨论】:

    • 感谢 Vivek 的澄清!是的,我想读取该文件,该文件位于堆栈中,并且尚未保存在特定路径中……我如何在我的情况下应用您的提议?谢谢你,请原谅我的基本问题。
    • 能否再添加一些你的应用程序的sn-p代码,尤其是文件上传部分,
    • Vivek 已解决,谢谢。我不知道文件上传后会从服务器中删除。现在,一旦我在服务器中收到文件,我就会保存它,然后我可以打开它并阅读它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-20
    • 2012-03-29
    • 2014-06-27
    • 1970-01-01
    • 2012-11-23
    相关资源
    最近更新 更多