1. Construisez un environnement de struts2
Sous MyEclipse, clic droit sur le projet -> MyEclipse -> Facets de projet -> Installez Apache Struts2.
Si vous souhaitez le construire vous-même, vous devez télécharger le package Struts2 et écrire le fichier de configuration Strut.xml.
La configuration du fichier web.xml est la suivante:
<filter> <filter-name> struts2 </filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.strutsprepareandexeccutefilter </ filter-class> </filter> <filter-mapping> <filter-name> Struts2 </filter-name> </mapping filtre>
2. Téléchargement de fichiers
1. Page de réception:
Page de téléchargement:
<body> <form action = "upload.action" method = "post" enctype = "multipart / form-data"> <input type = "file" name = "upload" /> <input type = "soume" value = "soumed" /> <br> $ {result} </ form> </ body>L'attribut de nom d'entrée est cohérent avec la dénomination d'arrière-plan.
Page de téléchargement échoué:
<body> <h2> Échec du téléchargement </h2> <S: Fielderror> </ S: Fielderror> </ody Body>
besoin:
<% @ taglib uri = "/ struts-tags" prefix = "s"%>
2. Action backend
PROPRIÉTÉS principales Téléchargez, uploadContentType, uploadFileName.
Le package com.yf.action; import java.io.file; import org.apache.commons.io.fileutils; import org.apache.struts2.servletActionContext; import com.openymphony.xwork2.actsupport; public class uploadAction étend des actions ActionSupport {up up up; String privé uploadContentType; Private String uploadFileName; Résultat de chaîne privé; Fichier public getUoload () {return upload; } public void setupload (fichier 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 result; } public void setResult (string result) {this.result = result; } @Override public String execute () lève exception {String path = servletActionContext.getServletContext (). GetRealPath ("/ images"); Fichier fichier = nouveau fichier (chemin); if (! file.exists ()) {file.mkdir (); } System.out.println (upload); FileUtils.copyFile (upload, nouveau fichier (fichier, uploadFileName)); result = "Téléchargé avec succès"; retourner le succès; }}3.strut.xml Configuration du fichier
Configurez l'action et configurez l'intercepteur pour limiter le type et la taille des fichiers téléchargés.
<? 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"> <spertts> <stanterny = "StrUts.enable.DaMnamic value = "false" /> <constante name = "struts.devmode" value = "true" /> <constante name = "struts.multuparts.savedir" value = "/ tmp" /> <constante name = "strut.custom.i18n.resources" value = "app"> </ constante> <package name = "defaultpacepace =" / "extends =" struts-def " name = "upload"> <sult> /index.jsp </ résultat> <résultat name = "input"> / error.jsp </ résultat> <! - Configurez l'interceptor pour limiter le type et la taille des fichiers téléchargés -> <interceptor-ref name = "fileupload"> <param name = "ALLORYPES"> Image / BMP, image / x-png, image / gif name = "maximumSize"> 2m </ param> </ interceptor-ref> <interceptor-ref name = "defaultStack"> </ interceptor-ref> </ action> </ package> </ struts>
4. Créer un nouveau fichier de propriétés
Les informations échouées de téléchargement de fichiers s'affichent au premier plan et le message d'erreur s'affiche lors du traitement.
Le contenu du fichier est le suivant:
strut.messages.error.file.too / grand = / u4e0a / u4f20 / u6587 / u4ef6 / u592a / u5927 / u4e86 / uff01strut.m essages.error.content.type.not.allowed = / u4e0a / u4f20 / u6587 / u4ef6 / u7c7b / u578b / u4e0d / u7b26 / uff01
C'est-à-dire ajouter:
Nom: struts.sessages.error.file.too / grand
Valeur: le fichier de téléchargement est trop grand!
Nom: struts.sessages.error.content.type.not.allowed
Valeur: le type de fichier téléchargé ne correspond pas!
Les résultats de l'opération sont les suivants:
Sélectionnez l'image JPG, la taille ne dépasse pas 2 m, après l'exécution
Sélectionnez un fichier non d'image:
Si vous devez télécharger des fichiers par lots, modifiez le téléchargement d'arrière-plan, téléchargez-vous et téléchargez-vous sur la liste, lisez le fichier de téléchargement dans une boucle et enregistrez-le sur le disque dur, ajoutez l'entrée à la réception et l'attribut de nom est le même.
Ce qui précède est un exemple d'analyse de la fonction de téléchargement de fichiers Struts2 introduit par l'éditeur. J'espère que ce sera utile à tout le monde. Si vous avez des questions, laissez-moi un message. L'éditeur répondra à tout le monde à temps!