1. Construa um ambiente STRUTS2
Sob Myeclipse, clique com o botão direito do mouse no Projeto -> Myeclipse -> Facets do Projeto -> Instale o Apache Struts2.
Se você quiser construí -lo, precisará baixar o pacote Struts2 e escrever o arquivo de configuração Struts.xml.
A configuração do arquivo web.xml é a seguinte:
<Filter> <filter-Name> struts2 </ftrid-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.strutsprepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <trestruts> struts2 </filtername> <url-Patter>*.
2. Upload de arquivo
1. Página da recepção:
Página de upload:
<Body> <form ação = "upload.action" method = "post" Enctype = "Multipart/form-data"> <input type = "file" name = "upload"/> <input type = "submit" value = "submit"/> <br> $ {resultado} </form> </body>O atributo de nome de entrada é consistente com a nomeação de fundo.
Falha na página de upload:
<body> <h2> Falha no upload </h2> <s: fielderror> </s: fielderror> </body>
precisar:
<%@ taglib uri = "/struts-tags" prefix = "s"%>
2. Ação de back -end
Propriedades principais Upload, uploadContentType, uploadFilename.
pacote com.yf.action; importar java.io.file; importar org.apache.commons.io.fileutils; importar org.apache.struts2.servletActionContext; importar com.opensymphony.xwork2.actionsupport; public class uploadAction estende a ação de ação {private argile; Private String uploadContentType; private string uploadfilename; resultado de string privada; public arquivo getuoload () {return upload; } public void setupLoad (upload de arquivo) {this.upload = upload; } public string getUploadContentType () {return uPLOPLONTENTTYPE; } public void setupLoadContentType (String uPLOPLONTENTTYPE) {this.uploadContentType = uPLOPLONTENTTYPE; } public String getUploadFilEName () {return uPLOPLeFilename; } public void setupLoadFilename (String uPLOPLeName) {this.uploadfilename = uPLOPLFILENAME; } public string getResult () {return resultado; } public void setResult (resultado da string) {this.Result = resultado; } @Override public String Execute () lança Exceção {String PATH = servletActionContext.getServletContext (). GetRealPath ("/imagens"); Arquivo de arquivo = novo arquivo (caminho); if (! file.exists ()) {file.mkdir (); } System.out.println (upload); Fileutils.copyfile (upload, novo arquivo (arquivo, uploadFilename)); resultado = "carregado com sucesso"; sucesso de sucesso; }}3.Struts.xml Configuração do arquivo
Configure a ação e configure o Interceptor para limitar o tipo e o tamanho dos arquivos carregados.
<? xml versão = "1.0" coding = "utf-8"?> <! Doctype suporta public "-// Apache Software Foundation // DTD Struts Configuration 2.1 // pt" "http://struts.apache.org/dts/stuts-2.1.dttht. <stuts.apache.org/dtds/stuts-2.1.dtht. <stuts.apache.org/dtds/stuts-2.1.dtht. <stuts.apache.org/dtds/stuts-2.1.dtht. <stuts.apache.org/dtds/stuts-2.1.dtth" value = "false"/> <nome constante = "struts.devmode" value = "true"/> <nome constante = "struts.multipart.savedir" value = "/tmp"/> <constante name = "struts.custom.i18n.resources" = "App"> </constant> <action name = "upload"> <sicel> /index.jsp </resultado> <resultado name = "input">/error.jsp </resultado> <!-Configure o interceptor para limitar o tipo e o tamanho dos arquivos carregados-> <interceptor-ref name = "fileUplOad"> <parampen name = "permedtypes> <param name = "maximumsize"> 2m </param> </interceptor-ref> <interceptor-ref name = "defaultStack"> </interceptor-ref> </ction> </catury> </stuts>
4. Crie um novo arquivo de propriedades
As informações com falha no upload do arquivo são exibidas no primeiro plano e a mensagem de erro é exibida ao processamento.
O conteúdo do arquivo é o seguinte:
struts.messages.error.file.too/grande =/u4e0a/u4f20/u6587/u4ef6/u592a/u5927/u4e86/uff01Struts.m Esseg.Error.Content.Type.NOT.allowed =/u4e0a/u4f20/u6587/u4ef6/u7c7b/u578b/u4e0d/u7b26/uff01
Isso é adicionar:
Nome: struts.messages.error.file.too/grande
Valor: O arquivo de upload é muito grande!
Nome: struts.messages.error.content.type.not.allowed
Valor: O tipo de arquivo carregado não corresponde!
Os resultados da operação são os seguintes:
Selecione a imagem JPG, o tamanho não excede 2M, depois de executar
Selecione um arquivo sem foto:
Se você precisar fazer upload de arquivos em lotes, altere o upload em segundo plano, uploadContentType e faça o upload Filename para listar, leia o arquivo de upload em um loop e salve -o no disco rígido, adicione a entrada à recepção e o atributo de nome é o mesmo.
O acima exposto é um exemplo de análise da função de upload do arquivo struts2 introduzida pelo editor. Espero que seja útil para todos. Se você tiver alguma dúvida, deixe -me uma mensagem. O editor responderá a todos a tempo!