1. Idées de téléchargement de fichiers de net
J'ai également déjà parlé du composant Fileupload. Il a des fonctions puissantes, mais l'opération est compliquée et compliquée. Cette fois, les téléchargements de fichiers sont également pris en charge dans Strust et Fileupload est emballé, ce qui est beaucoup plus pratique à utiliser.
Voici une balise et une classe:
<html: file propriété = "correspondant au nom de la propriété dans ActionForm">
Utilisez cette balise pour télécharger des fichiers, mais pour recevoir le contenu, vous devez vous fier à org.apache.struts.upload.formfile
L'interface est terminée.
2. Réalisation
sh.jsp:
<% @ Page Language = "Java" import = "java.util. *" Pageencoding = "utf-8"%> <% @ taglib uri = "http://jakarta.apache.org/struts/tags-ean" prefix = "bean"%> <% @ taglib uri = "http://jakarta.apache.org/struts/tags-html" prefix = "html"%> <% @ taglib uri = "http://jakarta.apache.org/strutts/tags-logic" préfix = "Logic"%> <! Doctype html public "-// w3c / dtd" HTML 4.01 Transitional // en "> <html> <ead> <Title> sh.jsp </ title> <méta http-equiv =" contenu-type "contenu =" text / html; <html: file propriété = "Photo"> </ html: file> <html: soumider value = "upload"> </ html: soumed> </ html: form> </ body> </html>
Uploadform.java:
package com.zyy.struts.form; import org.apache.struts.action.actionform; import org.apache.struts.upload.formfile; public class uploadform étend ActionForm {private formFile Photo; public formFile getphoto () {return Photo; } public void setphoto (FormFile Photo) {this.photo = photo; }} Iptimestamp.java:
package com.zyy.util; import java.text.simpledateFormat; import java.util.date; import java.util.random; public class iptiMestamp {private simpledateFormat sdf = null; chaîne privée ip = null; public iptimestamp () {} public iptiMestamp (String ip) {this.ip = ip; } public String getIptimerand () {stringBuffer buf = new StringBuffer (); if (this.ip! = null) {String S [] = this.ip.split ("//."); for (int i = 0; i <s.length; i ++) {buf.append (this.addzero (s [i], 3)); }} buf.append (this.gettimestamp ()); Random r = new Random (); pour (int i = 0; i <3; i ++) {buf.append (r.Nextint (10)); } return buf.toString (); } public String getDate () {this.sdf = new SimpledateFormat ("yyyy-mm-dd hh: mm: ss.sss"); return this.sdf.format (new Date ()); } public String gettimestamp () {this.sdf = new SimpledateFormat ("yyyymmddhhmmsssss"); return this.sdf.format (new Date ()); } String privé addzero (string str, int len) {stringBuffer s = new StringBuffer (); S.APPEND (STR); while (s.Length () <len) {s.insert (0, "0"); } return s.toString (); } public static void main (String args []) {System.out.println (new iptimestamp ("192.168.1.1"). getIptimerand ()); }}UploadAction.java:
package com.zyy.struts.action; import java.io.file; import java.io.fileoutputStream; import java.io.inputstream; import java.io.outputstream; import javax.servlet.http.httpservletrequest; import; org.apache.struts.action.action; import org.apache.struts.action.actionform; import org.apache.structs.action.actionforward; import org.apache.structs.action.actionmapping; import com.zyy.struct.form.uploadform; import com.zyy.util.iptimestamp, MAPORACTION PUBLIQUE FORMACTION ACTION HttpServLetRequest Request, HttpServletResponse Response) lève l'exception {uploadForm uploadForm = (uploadform) form; IPtiMestamp ips = new iptiMestamp (request.getReMoteaddr ()); // Nom de fichier String FileName = ips.getIptimemerand () + "." + uploadform.getphoto (). getFileName (). Split ("//.") [uploadform.getPhoto (). getFileName (). Split ("//."). Length - 1]; // le fichier de sortie de sortie outfile = nouveau fichier (super.getServlet (). GetServletContext () .getRealPath ("/") + "upload" + file.separator + fileName); // le dossier où l'image est stockée fichier fichier = nouveau fichier (super.getServlet (). GetServletContext () .getRealPath ("/") + "upload"); if (! file.exists ()) {file.mkdir (); } InputStream input = uploadform.getphoto (). GetInputStream (); OutputStream Output = new FileOutputStream (outfile); Données d'octets [] = nouveau octet [1024]; int temp = 0; while ((temp = input.read (data, 0, 1024))! = -1) {output.write (data); } output.close (); input.close (); retourner null; }}Struts-Config.xml:
<? xml version = "1.0" Encoding = "ISO-8859-1"?> <! Doctype Struts-Config Public "- // APCACH SOFTWARE Foundation // Dtd Struts Configuration 1.2 // en" "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"> <strutds-config <form-Beans> <form-Bean name = "uploadform" type = "com.zyy.struts.form.uploadform"> </ form-bean> </ form-beans> <Global-Exceptions> </ Global-Exceptions> </ Global-Forwards> </ Global-Forwards> <Action-Mappings> <Action Path = "/ jsp / uploadsp" Attribut = "uploadform" Input = "/ jsp / sh.J name = "uploadform" scope = "request" type = "com.zyy.struts.action.uploadAction"> </ action> </ action-Mappings> <message-resources Parameter = "Resource.MessageResources" /> </ Struts-Config>
Puisque ce que j'économise est super.getServlet (). GetServletContext (). GetRealPath ("/") + "upload"
Il s'agit du véritable chemin du répertoire virtuel dans le dossier de téléchargement.
On peut voir que le principe de téléchargement de fichiers dans Struts est le même que Fileupload, mais Struts est emballé, il est donc évidemment beaucoup plus pratique à utiliser que d'utiliser le composant Fileupload seul.
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.