2012-04-18 2 views
1

На самом деле мое требование - хранить загруженные файлы в каталоге путей к классам, то есть src/main/resources/uploads. (Я использую проект maven)Maven Spring fileUpload с использованием свойства uploadTempDir

Но диспетчер не может найти этот путь. Я получаю следующую ошибку.

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> 

ответ

0

Путь src/main/resources(/uploads) представляет собой путь, используемый Maven до компиляции. Ваш сервер ничего не знает об этом пути!

Артефакты в src/main/resources(/uploads) копируются в файл войны в каталог WEB-INF/classes/uploads.

Но этот каталог также содержит классы класса java, и вы никогда не должны позволять пользователю изменять или добавлять файлы в этот каталог!

Один момент, который может не соответствовать действительному с вами configration является пробел в

<value>/uploads </value>

+0

Теперь/загрузки принимается диспетчером servlet.The проблема я не добавить папку дата загрузки в WebContent , Но все же файлы не хранятся в папке uploads. В контроллере только я дал имя файла в выходном потоке, но все же он хранится в пути затмения. Кто-нибудь может предложить решение для этого? – gayatri

+0

Извините, если в моем ответе было недостаточно ясного ответа: вся конструкция ошибочна. Используйте «внешнюю» папку для загрузки! – Ralph

Смежные вопросы