Récemment, j'ai fait un fichier téléchargement, télécharger et ouvrir des fichiers en ligne. Au début, l'interface de téléchargement de fichiers contient d'autres formulaires (tels que les boîtes d'entrée, les mots de passe, etc.) et rencontré de nombreux problèmes pendant le processus de téléchargement. Ci-dessous, j'ai écrit un programme de test qui implémente simultanément le téléchargement de fichiers, le téléchargement et l'ouverture de fichiers en ligne.
Tout d'abord, veuillez consulter les rendus:
Code de base:
package com.jefry; Importer java.io.file; import java.io.fileInputStream; Importer java.io.ioException; Importer java.net.url; import java.util.arraylist; Importer java.util.iterator; Importer java.util.list; Importer javax.servlet.servletException; Importer javax.servlet.servletOutStream; import javax.servlet.http.httpservlet; Importer javax.servlet.http.httpservletRequest; import javax.servlet.http.httpservletResponse; import org.apache.commons.fileupload.fileItem; import org.apache.commons.fileupload.disk.diskfileItemfactory; import org.apache.commons.fileupload.servlet.servletFileUpload; / ** * Servlet Implementation Class Fileupload * / public class fileupload étend httpServlet {private static final long SerialVersionUID = 1l; chaîne finale statique privée filedir = "f: /"; / ** * Constructeur par défaut. * / public fileupload () {} protected void doGet (httpsservletRequest request, httpsservletResponse réponse) lève Servlexception, ioException {string afileName = request.getParameter ("filename"); String online = request.getParameter ("en ligne"); FileInputStream dans = null; ServletOutputStream out = null; booléen iSonline = en ligne! = NULL? vrai: false; essayez {if (iSonline) {url u = new url ("file: ///" + filedir + afileName); réponse.setContentType (U.OpenConnection (). GetContentType ()); Response.SetHeader ("Content-Disposition", "Inline; filename =" + afileName); } else {réponse.setContentType ("application / x-msdownload"); Response.sethEader ("Content-Disposition", "attachement; filename =" + afileName); } in = new FileInputStream (filedir + afileName); out = réponse.getOutputStream (); out.flush (); int araread = 0; while ((aread = in.read ())! = -1 & in! = null) {out.write (aread); } out.flush (); } catch (throwable e) {e.printStackTrace (); } enfin {try {in.close (); out.close (); } catch (throwable e) {e.printStackTrace (); }}} Protected void doPost (requette httpServletRequest, réponse httpservletResponse) lève ServletException, ioException {try {diskFileItemFactory filefactory = new DiskFileItemFactory (); ServletFileUpload fu = new ServletFileUpload (filefactory); List fileItems = fu.parseRequest (demande); Iterator iter = fileItems.iterator (); String uploader = null; String Date = null; List <string> filenames = new ArrayList <string> (); while (iter.hasnext ()) {fileItem item = (fileItem) iter.next (); if (! item.isformField ()) {// File String OldFileName = item.getName (); String newFileName = null; int Delimiter = OldFileName.LastIndexof ("/"); if (Delimiter == -1) newFileName = oldFileName.Substring (Delimiter + 1); else newFileName = oldFileName; filenames.add (newFileName); item.write (nouveau fichier (filedir + newFileName)); } else {// Form String fieldName = item.getFieldName (); if ("uploader" .equals (fieldName)) {uploader = item.getString (); } else if ("date" .equals (fieldname)) {date = item.getString (); }}} request.setAttribute ("nom de fichiers", noms de fichiers); request.getRequestDispatcher ("download.jsp"). Forward (demande, réponse); } catch (exception e) {}}} index.jsp
<% @ Page Language = "Java" ContentType = "Text / Html; charSet = UTF-8" Pageencoding = "UTF-8"%> <! Doctype HTML PUBLIC "- // W3C // DTD HTML 4.01 Transitional // En" "http://www.w3.org/tr/html4/loose" <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <form action="FileUpload" method="post" enctype="multipart/form-data"> <br> File 1: <input type="file" name="file1" /> <br> File 2: <input type = "file" name = "file2" /> <br> uploader: <input type = "text" name = "uploader" /> <br> date: <input type = "text" name = "date" /> <br> <input type = "soume" value = "soumed" /> </ form> </ body> </ html>
télécharger.jsp
<% @ Page Language = "Java" ContentType = "Text / Html; charSet = UTF-8" Pageencoding = "UTF-8"%> <! Doctype HTML PUBLIC "- // W3C // DTD HTML 4.01 Transitional // En" "http://www.w3.org/tr/html4/loose" <%@page import="java.util.List"%><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <br> --------------直接下载------------ <br> <% List<String> fileNames = (List<String> ) request.getAttribute ("nom de fichiers"); pour (chaîne nom de fichier: noms de fichiers) {%> <formulaire forme = "fileupload" metheth = "get"> <input type = "Hidden" name = "filename" value = "<% = filename%>" /> <input type = "soume" value = "下载: <% = filename>" /> </ form> <%} %> <br> ----------------- {%> <form action = "fileupload" metheth = "get"> <input type = "Hidden" name = "fileName" value = "<% = filename%>" /> <input type = "HIDDEN" name = "en ligne" value = "oui" /> <putp type = "soumi" %>Cet article a été compilé dans "Résumé des techniques d'opération de téléchargement Java", et tout le monde est le bienvenu pour apprendre et lire.
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.