2009-10-01 2 views
5

У меня проблема с загрузкой файла с использованием Spring Webflow 1.0 и struts 1.3.Struts - Загрузка файлов

СПЯ что-то вроде этого:

<html:form action="/flowAction" method="post" enctype="multipart/form-data"> 
    <!-- snip --> 
    <html:file property="file" name="attachDocumentsForm" size="50"/> 
    <!-- snip --> 
</html:form> 

Форма что-то вроде этого:

public class AttachDocumentsForm extends SpringBindingActionForm { 
    // note, SpringBindingActionForm extends struts' ActionForm 
    private FormFile file; 
    //snip 
} 

Теперь моя проблема в том, что когда я отправить форму, то file поле всегда null , Остальные поля в форме заполняются правильно, и если я выкапываю RequestContext, я могу найти файл, который захоронен в некоторых структурах данных.

Вот ужасно некрасиво так, что я могу получить в приложении:

// 'context' is the RequestContext 
ServletExternalContext servletExternalContext = (ServletExternalContext) context.getExternalContext(); 
ActionForm form = (ActionForm) servletExternalContext.getRequest().getAttribute("actionForm"); 
FormFile file = (FormFile) form.getMultipartRequestHandler().getFileElements().get("file"); 

Я заметил, что MultipartRequestHandler на моей форме null, и я подозреваю, что это может быть частью проблема, но я пробовал заполнить его экземпляром CommonsMultipartRequestHandler безрезультатно.

Что нужно сделать, чтобы поле file было заполнено правильно?

+0

Если вы не в состоянии получить файл из ActionForm аксессора, используя (FormFile) form.getFile()? –

ответ

0

Добавить поле под названием файл типа FormFile в ваш ActionForm (тот, который указан attachDocumentsForm), а также методы доступа.

Доступ к загружаемому файлу можно получить по телефону form.getFile().

Надеюсь, это поможет!

+0

Спасибо, но это только проблема. У меня уже есть одно из этих полей в ActionForm, но оно всегда равно null. –

+0

Я не знаю, с кем это связано с 2006 года, но у меня есть такая же проблема в проекте, над которым я работаю ... если у кого-то есть решение, было бы здорово :-) – Philippe

+0

Та же проблема Вот. –

1

Я думаю, вы должны настроить весной диспетчерскую сервлет: http://static.springsource.org/spring/docs/2.0.x/reference/mvc.html#mvc-multipart-resolver

+0

Спасибо за обновление, я посмотрю на это. Я знаю, что я консультировался с документами, которые вы связали, и определил многочастный resolver как часть этого процесса. Я совсем не уверен, что я правильно его подключил (прошло несколько месяцев с тех пор, как я посмотрел на это). Я сделаю еще один проход, когда у меня появится шанс. –

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