Cet article partage le code spécifique pour le téléchargement de fichiers servlet pour votre référence. Le contenu spécifique est le suivant
Il n'est pas sûr d'exposer le répertoire de fichiers directement à l'utilisateur. Vous devez donc utiliser des servlets, et de cette manière, les fichiers seront stockés plus abondamment. Ils peuvent être récupérés du système de fichiers, générés par des calculs dans la base de données, ou récupérés à partir d'autres endroits étranges.
La classe publique DownloadServlet étend httpServlet {private String contentType = "application / x-msdownload"; chaîne privée ENC = "UTF-8"; chaîne privée fileroot = ""; / ** * Initialize ContentType, ENC, FileRoot * / public void init (ServletConfig config) lève Servlexception {String tempptr = config.getInitParAmètre ("ContentType"); if (Temptr! = null &&! Temptr.equals ("")) {contentType = Temptr; } Temptr = config.getInitParameter ("ENC"); if (Temptr! = null &&! temptr.equals ("")) {enc = temptr; } tempmtr = config.getInitParameter ("fileroot"); if (Temptr! = null &&! temptr.equals ("")) {fileroot = temptr; }} Protected void doGet (HttpServletRequest Request, HttpServletResponse Response) lève Servlexception, ioException {String filepath = request.getParamètre ("filepath"); String fullFilePath = FileOot + FilePath; / * Lire le fichier * / fichier fichier = nouveau fichier (fullFilePath); / * Si le fichier existe * / if (file.exists ()) {String filename = urlencoder.encode (file.getName (), enc); réponse.RESET (); Response.SetContentType (ContentType); Response.AddHeader ("Content-Disposition", "Pixe; FileName = /" "+ FileName +" / ""); int fileLength = (int) file.length (); Response.SetContentLength (FileLength); / * Si la longueur du fichier est supérieure à 0 * / if (fileLength! = 0) {/ * Créer un flux d'entrée * / inputStream insime = new FileInputStream (file); octet [] buf = nouveau octet [4096]; / * Créer un flux de sortie * / ServletOutputStream ServletOS = Response.getOutputStream (); int readLength; while (((readLength = insiteam.read (buf))! = -1)) {servletos.write (buf, 0, readLength); } insiteam.close (); ServletOS.Flush (); servletos.close (); }}} web.xml
<VerTlet> <Serplet-Name> TownloadServlet-Name> <Servlet-Class> org.mstar.servlet.DownloadServletservlet-Class> <Init-Param> <AmAm-Name> FilerootParam-Name> <Anit-Value> D: / Tempparam-Value> init-Param> <Init-Param> <Am paramn-name> ContenuStyParam-Name> <Am param-Value> Application / X-MSDownloadParam-Value> init-Param> <Init-Param> <Amam-Name> ENCPARAM-NAME> <Ar param-Value> UTF-8Param-Value >>> Init-Param> Servlet> <Servlet-Mapping> <Servlet-Name> Téléchargement-Mapte> <Url-Pattern> / Downurl-Pattern> Servlett>
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.