1. Construya un entorno Struts2
En MyEClipse, haga clic con el botón derecho -> myeclipse -> Facets de proyecto -> Instale Apache Struts2.
Si desea construirlo usted mismo, debe descargar el paquete Struts2 y escribir el archivo de configuración Struts.xml.
La configuración del archivo web.xml es la siguiente:
<filter> <filter-name> struts2 </filtre-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.strutsprepareAnDexeCuteFilter </filter-class> </filter> <filter-mapping> <filter-name> struts2 </filter-name> <url-pattern>*. Action </url-pattern> </filtre-mappe>
2. Subida de archivo
1. Página de recepción:
Página de carga:
<Body> <Form Action = "upload.action" método = "post" enctype = "multipart/form-data"> <input type = "file" name = "upload"/> <input type = "envíe" valor = "enviar"/> <br> $ {resultado} </form> </body>El atributo del nombre de entrada es consistente con el nombre de fondo.
Página de carga fallida:
<body> <h2> cargue fallado </h2> <s: filderror> </s: filderror> </body>
necesidad:
<%@ taglib uri = "/struts-tags" prefix = "s"%>
2. Acción de backend
Propiedades principales de carga, uploadContentType, uploadFileName.
paquete com.yf.action; import java.io.file; import org.apache.commons.io.fileUtils; import org.apache.struts2.servletactionContext; import com.opensymphony.xwork2.Actionsupport; public class uploadaction extiende acciones. String private SubloadContentType; String privado cargandofileName; resultado de cadena privada; archivo público getuoload () {return upload; } public void setupload (file upload) {this.upload = upload; } public String getuploadContentType () {return uploadContentType; } public void setUploadContentType (String uploadContentType) {this.uploadContentType = uploadContentType; } public String getuploadFileName () {return uploadFileName; } public void setUploadFileName (String uploadFileName) {this.uploadFileName = uploadFileName; } public String getResult () {return resultado; } public void setResult (resultado de cadena) {this.result = resultado; } @Override public String Execute () lanza Exception {String Path = ServletActionContext.getServletContext (). GetRealPath ("/Images"); Archivo archivo = nuevo archivo (ruta); if (! file.exists ()) {file.mkdir (); } System.out.println (cargar); Fileutils.copyfile (cargar, nuevo archivo (archivo, uploadFileName)); resultado = "cargar correctamente"; devolver el éxito; }}3. Struts.xml Configuración del archivo
Configurar acción y configurar el interceptor para limitar el tipo y el tamaño de los archivos cargados.
<? 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/struts-2.1.dtdd"> <truts> <stitant name = " value = "false"/> <constant name = "struts.devmode" value = "true"/> <constant name = "struts.multipart.savedir" value = "/tmp"/> <constant name = "struts.custom.i18n.resources" value = "app"> </constant> <name de paquete = "predeterminado" namespace = "/" extendss-"strutshefes" "default" <Action name = "upload"> <resultado> /index.jsp </resultado> <resultado name = "input">/error.jsp </sult> <!-Configure el interceptor para limitar el tipo y el tamaño de los archivos cargados-> <interceptor-ref name = "fileupload"> <param name = "permitido types"> Image/bmp, image/x-png, imagen/gifi, jpeg/jpeg </jpeg </parámetro/parámetro> name = "MaximumSize"> 2M </amam> </sceptor-ref> <interceptor-ref name = "DefaultStack"> </interceptor-ref> </action> </paquete> </truts>
4. Crear un nuevo archivo de propiedades
La información fallida de la carga de archivo se muestra en primer plano y el mensaje de error se muestra al procesar.
El contenido del archivo es el siguiente:
struts.messages.error.file.too/grande =/u4e0a/u4f20/u6587/u4ef6/u592a/u5927/u4e86/uff01struts.m essages.error.content.type.not.lowed =/u4e0a/u4f20/u6587/u4ef6/u7c7b/u578b/u4e0d/u7b26/uff01
Eso es agregar:
Nombre: Struts.messages.error.file.too/grande
Valor: ¡el archivo de carga es demasiado grande!
Nombre: struts.messages.error.content.type.not.lodeded
Valor: ¡El tipo de archivo cargado no coincide!
Los resultados de la operación son los siguientes:
Seleccione la imagen JPG, el tamaño no excede los 2 m, después de ejecutar
Seleccione un archivo que no sea de imagen:
Si necesita cargar archivos en lotes, cambie la carga en segundo plano, la carga de cables y la entrada y el nombre de carga para la lista, lea el archivo de carga en un bucle y guárdelo en el disco duro, agregue la entrada a la recepción y el atributo de nombre es el mismo.
Lo anterior es un análisis de ejemplo de la función de carga de archivos STRUTS2 introducida por el editor. Espero que sea útil para todos. Si tiene alguna pregunta, déjame un mensaje. ¡El editor responderá a todos a tiempo!