Este artigo compartilhou com você a função de download do arquivo em Struts2 para sua referência. O conteúdo específico é o seguinte
Aqui está um exemplo de implementação de uma função de download de imagem:
1. Estrutura do projeto
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: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xmls/javaee/web-web-web-web-web-web-web-/java.sun.com/xmls/javaee/web-web-web-web-web-web-/java.sun.com/xmla <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--> <lorde-file-list> <lmed-File> index.jsp </limk-File> </weld-fil-list> <!-Definição de tempo limite da sessão, unidade em minutos-> <Session-CONFIG> </Session-timeout> 30 </session-timeout> </session-config> </web-app>
3.DownloadAction.java
pacote com.action; importar java.io.inputStream; importar org.apache.struts2.ServletActionContext; importação com.opensymphony.xwork2.actionsupport; classe pública DownloadAction Extends ACTIONSupport {private estático final serialversionuid = 1L; // FILHAT PATH String private String Path; // Método getter de atributo de caminho public string getPath () {Return Path; } // Método Setter do atributo de caminho public void SetPath (String Path) {this.path = Path; } // retorna inputStream, o método da chave para baixar arquivos public java.io.inputStream getDownLoadFile () lança exceção {inputStream in = servletActionContext.getServletContext (). GetResourceasStream (getPath ()); retornar; } public string Execute () lança a Exceção {return Success; }}4.Struts.xml
<? xml versão = "1.0" Encoding = "utf-8"?> <! Doctype suporta public "-// Apache Software Foundation // DTD Struts Configuration 2.1 // pt" "httt./stuts.apache.org/dtds/stuts-2.1.dtts const name = "struts.i18n.encoding" value = "utf-8" /> <!-Configure a capacidade máxima dos arquivos carregados, o Struts2 é 2M por padrão. A unidade é 1b, 1kb = 1024b, 1m = 1024kb, 1m = 1024*1024b-> <nome constante = "struts.multipart.maxsize" value = "1048576" /> <!-Configure o pacote neste aplicativo e herdou o pacote de struts-DURLACE "> <! estends = "Struts-Default"> <Ação name = "Download"> <!-Defina os parâmetros do caminho do arquivo e passe-o para o arquivo da classe de ação-> <!-<param name = "PATH">/download/a.jpg </param>-> <!-Download Arquivo Tipo de definição, que é, definido como "Stream"->, <nome) name = "ContentType"> image/jpeg </param> <!-Baixe o método de processamento de arquivos-> <param name = "contentDisposition"> <!-anexo significa anexo, ou seja, a janela de diálogo salvar é aberta durante o download e o nome do arquivo representa o nome do arquivo exibido durante o download-> <!-se você não grava o anexo; ou escreva em linha; Isso significa que é embutida, ou seja, você tentará abrir o arquivo baixado no navegador, em vez de baixar-> anexamento; filename = "a.jpg" </param> <!-download de file de saída de arquivo de saída definição-> <!-o valor correspondente ao elemento inputName aqui é Na ação, você deve ter o método getDownLoadFile () de getDownload () <param name = "inputName"> downloadfile </am Param> <!-download de tamanho de buffer-> <param name = "buffersize"> 1024 </param> </sould> </action> </catury> </struts>
5.index.jsp
<%@ página de página = "java" import = "java.util.*" pageEncoding = "utf-8"%> <%string path = request.getContextPath (); String basalepath = request.getScheme ()+": //"+request.getServername ()+":"+request.getServerport ()+path+"/"; %> <! Doctype html public "-// w3c // dtd html 4.01 transitória // pt"> <html> <head> <base href = "<%= Basepath%>" Rel = "Nofollow"> </title href = "Download.action? Path = < %=" rel = "Nofollow externo" ./download/a.jpg " %>"> Download </a> </fenter> </body> </html>
6. Caminho do arquivo
O diretório de download deve ser criado com antecedência no projeto e deve haver um arquivo A.JPG dentro dele; caso contrário, o download falhará.
7. Portal funcional
Depois que o projeto for publicado no servidor, use o navegador para acessar o index.jsp no projeto, clique no link de download e a caixa de diálogo "Download" será exibida.