Cet article a partagé avec vous la fonction de téléchargement de fichiers sous Struts2 pour votre référence. Le contenu spécifique est le suivant
Voici un exemple de mise en œuvre d'une fonction de téléchargement d'image:
1. Structure du projet
2. web.xml
<? xml version = "1.0" encoding = "utf-8"?> <web-app version = "3.0" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" XSI: ScheMalation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <! <Filter-Name> Struts 2 </ Filter-Name> <Filter-Class> org.apache.struts2.dispatcher.ng.filter.strutSprepareAndexEcuteFilter </ Filter-Class> </filter-mapping> <! - Paramètres de la page de bienvenue -> <venue-file-list> <leen welcome-file> index.jsp </ bienvenue-file> </ welcome-file-list> <! - Définition de délai de session, unité en procès-verbal -> <ession-config> <session-timeout> 30 </ession-timeout> </ession-config> </bou-apprent>
3.DownloadAction.java
package com.action; import java.io.inputStream; import org.apache.struts2.ServletActionContext; Importer com.opensymphony.xwork2.actionsupport; Public Class DownloadAction étend ActionSupport {private static final long SerialVersionUID = 1L; // Path de fichier Chemin privé de chaîne; // Méthode Getter de l'attribut Path Public String getPath () {return path; } // Méthode de setter de l'attribut Path public void setPath (String Path) {this.path = path; } // return inputStream, Key Méthode pour télécharger des fichiers public java.io.inputStream getdownloadFile () lève une exception {inputStream dans = servletActionContext.getServletContext (). GetResourceSstream (getPath ()); retour dans; } public String execute () lève l'exception {return Success; }}4.strut.xml
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Struts public "- // APache Software Foundation // Dtd Struts Configuration 2.1 // en" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <! name = "strut.i18n.encoding" value = "utf-8" /> <! - Configurez la capacité maximale des fichiers téléchargés, Struts2 est 2M par défaut. L'unité est 1B, 1KB = 1024B, 1M = 1024KB, 1M = 1024 * 1024B -> <constante name = "Struts.multuparT.maxsize" Value = "1048576" /> <! ExtendS = "Struts-default"> <action name = "download"> <! - Définissez les paramètres du chemin du fichier et passez-le au fichier de classe d'action -> <! - <param name = "path"> / téléchargement / a.jpg </ param> -> <! - Télécharger le type de définition name = "contentType"> image / jpeg </ param> <! - Méthode de traitement de fichier de téléchargement -> <param name = "ContentDisposition"> <! - La pièce jointe signifie la pièce jointe, c'est-à-dire la boîte de dialogue Enregistrer est ouverte pendant le téléchargement, et le nom de fichier représente le nom de fichier affiché lors du téléchargement-> <! - Si vous n'écrivez pas la pièce jointe; ou écrire en ligne; Cela signifie en ligne, c'est-à-dire que vous essairez d'ouvrir le fichier téléchargé dans le navigateur, plutôt que de télécharger -> pièce jointe; filename = "a.jpg" </param> <! - Définition du flux de sortie de fichier de téléchargement -> <! - La valeur correspondant à l'élément d'entrée ici est le fichier de téléchargement. Dans l'action, vous devez avoir la méthode GetDownloadFile () correspondante -> <param name = "inputName"> DownloadFile </ param> <! - Télécharger la taille du tampon -> <param name = "BufferSize"> 1024 </param> </sult> </ action> </ package> </ Struts>
5.Index.jsp
<% @ page langage = "java" import = "java.util. *" pageencoding = "utf-8"%> <% String path = request.getContextPath (); String basepath = request.getscheme () + ": //" + request.getServerName () + ":" + request.getServerport () + path + "/"; %> <! DocType Html public "- // w3c // dtd html 4.01 transitional // en"> <html> <adhead> <base href = "<% = basepath %>" rel = "external nofollow"> <title> home </ title> </ head> <corps href = "download.action? path = <% =" rel = "external nofollow" ./download/a.jpg "%>"> Télécharger </a> </ Center> </ body> </html>
6. Chemin de fichier
Le répertoire de téléchargement doit être créé à l'avance dans le projet, et il devrait y avoir un fichier A.JPG à l'intérieur, sinon le téléchargement échouera.
7. Portail fonctionnel
Une fois le projet publié sur le serveur, utilisez le navigateur pour accéder à l'index.jsp dans le projet, cliquez sur le lien de téléchargement et la boîte de dialogue "Télécharger" apparaîtra.