Struts 2 Datei-Upload-Abfangjäger-Konfiguration Probleme
Ich habe zwei Probleme, wenn Sie versuchen, konfigurieren Sie die stützen 2 Datei-Upload-Interceptor in meiner Anwendung. Ich möchte, um den parameter zu ändern maximumSize
(der Standardwert ist 2 MB, ich brauche es, um 5 MB) und die Meldung resource struts.messages.error.file.too.large
(die app locale ist pt_BR, so die Botschaft, ist in portugiesischer Sprache, nicht Englisch).
Die app aktuelle Konfiguration folgt:
Streben.Eigenschaften
struts.locale=pt_BR
struts.custom.i18n.resources=MessageResources
struts.xml
<package name="default" namespace="/" extends="struts-default">
<interceptors>
<interceptor name="login" class="br.com.probank.interceptor.LoginInterceptor"/>
<interceptor-stack name="defaultLoginStack">
<interceptor-ref name="login" />
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="defaultLoginStack" />
...
</package>
...
<package name="proposta" namespace="/proposta" extends="default">
<action name="salvarAnexoProposta" method="salvarAnexoProposta" class="br.com.probank.action.AnexoPropostaAction">
<interceptor-ref name="defaultLoginStack">
<param name="fileUpload.maximumSize">5242880</param>
</interceptor-ref>
<result name="success">/jsp/listagemAnexosPropostaForm.jsp</result>
<result name="input">/jsp/crudAnexoPropostaForm.jsp</result>
<result name="error">/jsp/error.jsp</result>
<result name="redirect" type="redirect">${redirectLink}</result>
</action>
</package>
MessageResources.Eigenschaften
...
struts.messages.error.file.too.large=O tamanho do arquivo...
Es ist nichts besonderes über meine Aktion Implementierung und meine JSP-code. Sie Folgen dem Beispiel gefunden http://struts.apache.org/2.1.6/docs/file-upload-interceptor.html. Wenn ich versuche, eine Datei hochzuladen, mit mehr als 5 MB-die app zeigt die Meldung "die Anforderung wurde zurückgewiesen, da seine Größe (6229458) überschreitet die konfigurierte maximale (2097152)" - die Standard-Datei-Upload-Nachricht mit dem Standard-maximumSize Wert.
Ich versuche die Meldung resource struts.messages.error.file.too.large
in einer struts-Nachrichten.Eigenschaften aber die Botschaft hat sich nicht geändert danach. Was ist die richtige Art und Weise zu konfigurieren, die Datei-Upload-Interceptor? Ich bin mit Struts 2 2.1.7. Vielen Dank im Voraus.
- Nur einen Weg gefunden, ändern Sie die upload Größe beschränken. 🙂 Ich habe die
struts.multipart.maxSize
Eigenschaft instruts.properties
Datei auf den gewünschten Wert. Aber das problem mit den lokalisierten Fehler Meldung noch bleibt...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schließlich löste das ganze puzzle!
struts.xml
undMessageResource.properties
richtig konfiguriert werden. Das problem warstruts.multipart.maxSize
Wert. Dieser Wert muss größer sein als die gewünschte upload-limit (5242880 in meiner app), so dass ich ihn als 10000000. Wennstruts.multipart.maxSize
Wert gleich oder weniger alsfileUpload.maximumSize
Bibliothek von Struts 2 zu tun, der upload Stoppt der upload-Prozess (und schreibt die Fehlermeldung), bevor Sie die Datei hochladen interceptor hat eine chance, seine Arbeit zu tun.Die Lösung von dir ist nicht ganz korrekt in dem Sinne, dass, Wenn ich will strenge upload-limits zusammen mit i18n, das funktioniert nicht. Ich habe auch einen Problem mit strut2 für diese. Bitte schauen Sie auf den folgenden link https://issues.apache.org/jira/browse/WW-3177. Es ist aufgrund behoben werden, in struts2.1.9 und ist bereits zugewiesen, um eine struts-team-Mitglied.
In zwischen bin ich mit einem hack. Ich blätterte die struts2-source-code gefunden und den code für FileUploadInterceptor. Mit diesem code erstellte ich meine eigene. Hier ist der code unten. Finden Sie die details des Problems auf den link oben. Hoffe, das hilft.
Versuchen, diese in Ihrem
struts.xml
, woxxxxxxxx
ist die Grenze:Ersten Verwendung validate-Methode in der action Datei........
Für vollständige code,besuchen Sie bitte http://knowledge-serve.blogspot.com/2011/10/upload-file-using-in-struts-2.html