4

MavenとSpringRooを使用したRESTFulWebサービスの開発を使用しています。

multipartResolver300KBのファイルをアップロードしているため、構成xmlファイルでBeanを定義しました。

<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宣言で何か間違ったことをしましたか?このエラーが発生する他の理由はありますか?

ありがとうございました

4

1 に答える 1

2

getInputStream() の呼び出しは、クライアント側でファイルの入力ストリームを取得する要求として認識されています。ファイルは既にアップロードされているため、「ファイルは移動されました - 再度読み取ることはできません」と表示されます。

また、getInputStream() を呼び出して何をしようとしていますか? アップロードされたファイルを読み取る場合は、アップロードされた場所のパスを使用して新しい FileInputStream を作成し、ファイルの内容にアクセスします。

于 2012-08-03T08:53:34.540 に答える