1

実際、私の要件は、アップロードされたファイルをクラスパスディレクトリに保存することですsrc/main/resources/uploads。(私はmavenプロジェクトを使用しています)

しかし、ディスパッチャーはこのパスを見つけることができません。次のエラーが表示されます。

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'multipartResolver' defined in ServletContext resource [/WEB-INF/dispatcher-servlet.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
    PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'uploadTempDir' threw exception; nested exception is java.io.FileNotFoundException: class path resource [uploads] cannot be resolved to URL because it does not exist

以下の構成がディスパッチャ ファイルに追加されます。

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="maxUploadSize" value="1048576"/>
    <property name="uploadTempDir" ref="uploadDirResource"/>
</bean>

<bean id="uploadDirResource" class="org.springframework.core.io.ClassPathResource">
    <constructor-arg>
        <value>/uploads</value>
    </constructor-arg>
</bean>
4

1 に答える 1

0

パスsrc/main/resources(/uploads)は、コンパイル前に Maven によって使用されるパスです。サーバーはこのパスについて何も知りません!

のアーティファクトはsrc/main/resources(/uploads)、war ファイル内のディレクトリにコピーされますWEB-INF/classes/uploads

ただし、このディレクトリには Java クラスのフィールドも含まれているため、ユーザーがそのディレクトリにファイルを変更または追加することを許可しないでください。

構成で正しくない可能性がある1つのポイントは、

<value>/uploads </value>

于 2012-04-19T12:48:14.230 に答える