Mam problem z przesłaniem pliku przy użyciu webflow 1.0 i rozpórki 1.3.Struts - przesyłanie plików
jsp jest coś takiego:
<html:form action="/flowAction" method="post" enctype="multipart/form-data">
<!-- snip -->
<html:file property="file" name="attachDocumentsForm" size="50"/>
<!-- snip -->
</html:form>
forma jest coś takiego:
public class AttachDocumentsForm extends SpringBindingActionForm {
// note, SpringBindingActionForm extends struts' ActionForm
private FormFile file;
//snip
}
Teraz moim problemem jest to, że kiedy przesłać formularz, pole file
jest zawsze null
. Pozostałe pola w formularzu są wypełnione poprawnie, a jeśli przeszukuję plik RequestContext
, mogę znaleźć plik głęboko w niektórych strukturach danych.
Oto strasznie brzydki sposób, że mogę dostać na zajęcia:
// 'context' is the RequestContext
ServletExternalContext servletExternalContext = (ServletExternalContext) context.getExternalContext();
ActionForm form = (ActionForm) servletExternalContext.getRequest().getAttribute("actionForm");
FormFile file = (FormFile) form.getMultipartRequestHandler().getFileElements().get("file");
Zauważyłem, że MultipartRequestHandler
na moim formularzu jest null
i podejrzewam, że to może być częścią problem, ale próbowałem zapełnić go instancją CommonsMultipartRequestHandler
bezskutecznie.
Co muszę zrobić, aby pole wypełniło się prawidłowo w polu file
?
nie powinno być możliwe, aby uzyskać plik z akcesor ActionForm, stosując (FormFile) form.getFile()? –