Este artículo ha compartido con usted la función de descarga de archivos en Struts2 para su referencia. El contenido específico es el siguiente
Aquí hay un ejemplo de implementación de una función de descarga de imágenes:
1. Estructura del proyecto
2. Web.xml
<? xml versión = "1.0" encoding = "utf-8"?> <web-app versión = "3.0" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "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> <filter-mapping> <filter-name>struts 2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- Settings Welcome Page--> <velceed-File-List> <Devene-File> Index.jsp </Welcome-File> </Welcome-File-List> <!-Definición de tiempo de espera de la sesión, unidad en minutos-> <session-config> <session timeOut> 30 </session timeOut> </session-Config> </web-app>
3.DownloadAction.java
paquete com.action; import java.io.inputstream; importar org.apache.struts2.servletactionContext; import com.opensymphony.xwork2.ActionSupport; Public Class DownloadAction extiende ActionSupport {private static final Long SerialVersionUid = 1l; // Ruta de archivo de la ruta de cadena privada; // Método Getter de la ruta atribuye public String getPath () {return ruta; } // Método de setter del atributo de ruta public void setPath (ruta de cadena) {this.path = ruta; } // return inputStream, método clave para descargar archivos públicos java.io.inputstream getdownloadfile () lanza la excepción {inputStream in = servletactionContext.getServletContext (). GetResourceasStream (getPath ()); regresar; } public String Execute () lanza la excepción {return éxito; }}4.struts.xml
<? xml versión = "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.dtdd"> <truts> name = "Struts.i18n.Encoding" Value = "UTF-8" /> <!-Configure la capacidad máxima de los archivos cargados, STRUTS2 es 2M por defecto. La unidad es 1b, 1kb = 1024b, 1m = 1024kb, 1m = 1024*1024b-> <constant name = "struts.multipart.maxsize" value = "1048576" /> <!-Configure el paquete en esta aplicación e inherede el paquete de deffault-default-> <name de paquete = "fileStewlowload" namespace /"" " Extends = "Struts-Default"> <Action name = "download"> <!-Establezca los parámetros de la ruta del archivo y paselo en el archivo de clase de acción-> <!-<param name = "path">/download/a.jpg </param>-> <!-Descargar el tipo name = "ContentType"> Image/jpeg </amam> <!-Descargar el método de procesamiento de archivos-> <param name = "contentDisposition"> <!-Adjunto significa archivos adjuntos, es decir, la ventana de diálogo Guardar se abre durante la descarga, y el nombre de archivo representa el nombre del archivo que se muestra durante la descarga-> <!-Si no escribe adjunto; o escribir en línea; Significa en línea, es decir, intentará abrir el archivo descargado en el navegador, en lugar de descargar-> adjunta; filename = "a.jpg" </amam> <!-Descargar la definición de transmisión de salida del archivo-> <!-El valor correspondiente al elemento inputName aquí es descargar elfile. En la acción, debe tener el método GetdownloadFile () correspondiente-> <param name = "inputName"> downloadfile </amam> <!-Descargar buffer size-> <param name = "buffersize"> 1024 </param> </resultado> </action> </paquete> </struts>
5.index.jsp
<%@ página lenguaje = "java" import = "java.util.*" pageEncoding = "utf-8"%> <%string path = requit.getContextPath (); String basepath = request.getScheme ()+": //"+request.getServerName ()+":"+request.getServerPort ()+ruta+"/"; %> < href = "download.action? Path = < %=" rel = "externo nofollow" ./download/a.jpg " %>"> descargar </a> </center> </body> </html>
6. Ruta de archivo
El directorio de descarga debe crearse con anticipación en el proyecto, y debe haber un archivo A.JPG dentro de él, de lo contrario, la descarga fallará.
7. Portal funcional
Después de publicar el proyecto en el servidor, use el navegador para acceder al index.jsp en el proyecto, haga clic en el enlace de descarga y aparecerá el cuadro de diálogo "Descargar".