1. Laden Sie die Struts2 -Datei hochladen
Die Datei -Upload -Implementierung von Struts2 ist sehr einfach und kann in wenigen einfachen Schritten abgeschlossen werden.
Beachten:
(1) Das Struts2 -Tag für das Datei -Upload lautet: <s: Dateiname = "" label = "Upload"/>
(2) Die Voraussetzung für das Datei-Upload ist die Formular Attributmethode = "post" engType = "Multipart/Form-Data";
(3) Die Webanwendung muss Common-fileUpload.jar und Common-io.jar enthalten, da der Standard-Upload-Parser von Struts2 Jakarta verwendet.
(4) Die maximal zulässige Dateigröße kann in Struts.xml konfiguriert werden: <Constant name = "Struts.multiPart.maxSize" value = "......"/>, Standard ist 2m;
1. Normale Datei -Upload <BR /> Implementierungsregeln:
(1) Setzen Sie das Formularsteuerung in JSP <s: Dateiname = "upload" label = "Upload"/>
(2) Attribute in Aktion definieren:
privates Datei -Upload; // Inhalt von Dateiinhalten enthält
private String uploadFileName; // der Name der hochgeladenen Datei;
private String uploadContentType; // den MIME -Typ der Upload -Datei;
Diese Attribute werden automatisch zugewiesen, wenn die Datei hochgeladen wird.
(3) die Festplattenschreibfunktion in execute () ausfüllen;
Codebeispiel:
Upload01Action.java
Paket org.Upload.Action; Import Java.io.file; import Java.io.FileInputStream; importieren java.io.fileoutputStream; import org.apache.struts2.servletactioncontext; import com.opensymphony.xwork2.actionsupport; öffentliche Klasse Upload01Action erweitert actionupport {private Datei hochladen; private String uploadFileName; private String uploadContentType; privater Zeichenfolge Name; public String execute () löst Ausnahme aus {String path = servletActActionContext.getServletContext (). getRealPath ("/web-inf/upload"); String Dateiname = Pfad+Datei.Sesparator+Name; FileInputStream in = new FileInputStream (Upload); FileOutputStream out = new FileOutputStream (Dateiname); Byte [] B = neues Byte [1024]; int len = 0; while ((len = in.read (b))> 0) {out.write (b, 0, len); } out.close (); Erfolgserfolg; } öffentliche Datei getUpload () {return upload; } public void setUpload (Datei -Upload) {this.Upload = upload; } public String getUploadFileName () {return uploadFileName; } public void setUploadFileName (String uploadFileName) {this.UploadFileName = UploadFileName; } public String GetUploadContentType () {return uploadContentType; } public void setUploadContentType (String uploadContentType) {this.UploadContentType = UploadContentType; } public String getName () {return name; } public void setName (String -Name) {this.name = name; }} Struts.xml
<? name = "struts.custom
1.JSP
<%@ page Language = "java" import = "java.util. '1.jsp' starting page</title> </head> <body> <s:form action="upload01" method="post" enctype="multipart/form-data"> <s:file name="upload" label="upload"></s:file> <s:submit value="upload"></s:submit> </s:form> </body> </html>
2. Verwenden Sie Interceptors zum Filter
Die Methode zur manuellen Implementierung der Filterung ist sehr einfach, bei der die Eingabeüberprüfung zum Filtern verwendet wird, dh Filterung in Validate ();
Die Interceptor -Methode, über die wir hier sprechen möchten, ist ein guter Weg. Es muss nur in der Konfigurationsdatei konfiguriert werden. Es hat eine gute Flexibilität und kann den Dateityp und die Dateitypen begrenzen. Wenn die hochgeladene Datei nicht den Anforderungen entspricht, wird die logische Eingabeansicht zurückgegeben.
Schritte zur Konfiguration des Interceptors:
(1) Der Interceptor für das Datei -Upload ist FileUpload;
(2) Die angegebenen Parameter müssen zugelassen werden, und maximal.
(3) Nach dem FileUpload-Interceptor müssen Sie <Interceptor-ref name = "defaultStack"/> hinzufügen
Codebeispiel:
Da die Filterung durch einen Interceptor nur die Konfiguration von Struts.xml erfordert, wird hier nur die Konfiguration von Struts.xml angegeben.
<? name = "struts.custom name = "maximumSize"> 1024*1024 </param> </interceptor-ref> <interceptor-ref name = "DefaultStack"> </interceptor-ref> <param name = "name"> 1.jpg </param> <result>/{1} .jsp </result> </action> </paket> </struts> Wir benötigen auch die Fehlermeldung, nachdem das Upload der Konfigurationsdatei fehlgeschlagen ist, und wir müssen sie in der globalen internationalen Ressourcendatei konfigurieren:
Struts.messages.Error.content.type.not.alowed = Dateityp stimmt nicht übereinstimmt.
2. Laden Sie die Struts2 -Datei herunter
Wenn wir Servlet- und HTTP-Protokolle lernen, können wir bereits Datei-Downloads implementieren, dh in Content-Disposition-Header schreiben. Dies ist das Implementierungsprinzip von Struts2, bietet jedoch eine bessere Einkapselung.
Der Stream -Ergebnistyp von Struts2 wird speziell zum Implementieren von Datei -Downloads verwendet.
(1) Konfigurieren Sie den Stream -Ergebnistyp in Struts.xml und konfigurieren Sie die Parameter von ContentType, ContentDisposition und Puffergröße. Vorlage:
<action name = "download"> <result type = "stream" name = "scurn"> <param name = "contentType"> </param> <param name = "contentDisposition"> Anhang; FileName = "" </param> <param name = "bufferSize"> 4096 </param> </result> </action> </action> </action> </action> </action> </action> </action> </action> </action> </action>
(2) Erstellen öffentlicher InputStream getInputStream () löst Ausnahme in Aktion aus; Methode wird diese Methode verwendet, um den Eingabestream der heruntergeladenen Datei zu erhalten.
DownloadAction.java
Paket org.download.Action; importieren java.io.inputstream; import org.apache.struts2.servletactioncontext; import com.opensymphony.xwork2.actionsupport; öffentliche Klasse DownloadAction erweitert actionupport {public InputStream getInputStream () löst Ausnahme aus {return servletActionContext.getServletContext (). } public String execute () löst Ausnahme aus {return Erfolg; }} Struts.xml
<action name="download"> <result type="stream" name="success"> <param name="contentType">image/jpeg</param> <param name="contentDisposition">attachment;filename="1.jpg"</param> <param name="bufferSize">4096</param> </result> </action>
Sie können den Download abschließen.
Dies ist alles für Sie, um die Implementierung des Hochladens und Herunterladens von Strus2 -Dateien in Java vorzustellen. Vielen Dank für Ihre Lektüre.