Vor kurzem habe ich eine Datei -Upload-, Download- und Öffnen von Dateien online durchgeführt. Zu Beginn enthält die Datei -Upload -Schnittstelle andere Formulare (z. B. Eingabefelder, Kennwörter usw.) und traf während des Upload -Prozesses viele Probleme. Im Folgenden habe ich ein Testprogramm geschrieben, das gleichzeitig Dateien -Upload, Herunterladen und Öffnen von Dateien online implementiert.
Sehen Sie sich zunächst die Renderings an:
Kerncode:
Paket com.jefry; Import Java.io.file; import Java.io.FileInputStream; importieren java.io.ioException; importieren java.net.url; Import Java.util.ArrayList; Import Java.util.iterator; importieren java.util.list; importieren javax.servlet.servletException; Importieren Sie javax.servlet.servletoutputStream; import Javax.servlet.http.httpServlet; importieren javax.servlet.http.httpServletRequest; importieren javax.servlet.http.httpServletResponse; import org.apache.commons.FileUpload.FileItem; import org.apache.commons.FileUpload.disk.diskFileTemfactory; import org.apache.commons.FileUpload.servlet.servletFileUpload; / ** * Servlet -Implementierungsklasse FileUpload */ Public Class FileUpload erweitert httpServlet {private statische endgültige long serialversionuid = 1l; private statische endgültige Zeichenfolge farredir = "f:/"; /*** Standardkonstruktor. */ public FileUpload () {} Protected void dagget (httpServletRequest -Anforderung, httpServletResponse -Antwort) löst ServletException, IOException {String afilename = request.getParameter ("fileName") aus; String Online = Request.GetParameter ("Online"); FileInputStream in = null; ServletOutputStream out = null; boolean isonline = online! = null? wahr: falsch; try {if (isOnline) {url u = new URL ("Datei: ///" + fungedir + afilename); response.setContentType (U.OpenConnection (). getContentType ()); response.setheader ("Inhaltsdisposition", "Inline; FileName ="+afileName); } else {response.setContentType ("application/x-msdownload"); response.setheader ("Inhaltsdisposition", "Anhang; Dateiname =" + afileName); } in = new FileInputStream (fungedir + afilename); out = response.getOutputStream (); out.flush (); int aread = 0; while ((aread = in.read ())! = -1 & in! = null) {out.write (aread); } out.flush (); } catch (throwable e) {e.printstacktrace (); } endlich {try {in.close (); out.close (); } catch (throwable e) {e.printstacktrace (); }}} protected void dopost (httpServletRequest -Anforderung, httpServletResponse -Antwort) löst ServletException aus, ioException {try {diskFileItemFactory FileFactory = new diskFileItemFactory (); ServletFileUpload fu = new ServletFileUpload (Dateifaktor); List FileItems = fu.parsequest (Anfrage); Iterator iter = FileItems.Iterator (); String uploader = null; String Datum = null; List <String> Dateinamen = new ArrayList <string> (); while (iter.hasnext ()) {FileItem item = (FileItem) iter.next (); if (! item.isformfield ()) {// Datei string oldFileName = item.getName (); String newFileName = null; int delimiter = oldFileName.lastIndexof ("/"); if (delimiter == -1) newFileName = oldFileName.substring (Delimiter + 1); sonst newFileName = OldFileName; fileNames.add (newFileName); item.write (neue Datei (Farredir + Newfilename)); } else {// form String fieldname = item.getFieldName (); if ("uploader" .equals (fieldName)) {uploader = item.getString (); } else if ("date" .equals (fieldname)) {date = item.getString (); }}} request.setAttribute ("Dateinamen", Dateinamen); Request.GetRequestDispatcher ("download.jsp"). Forward (Request, Antwort); } catch (Ausnahme e) {}}} index.jsp
<%@ page Language = "java" contentType = "text/html; charset = utf-8" pageCoding = "utf-8"%> <! docType html public "-// w3c // dtd html 4.01 transitional // en" http://www.w.w.w.w.w.w.w.w.w3. <html> <head> <meta http-äquiv = "content-type" content = "text/html; charset = utf-8"> <title> Title hier einfügen </title> </head> <body> <form action = "fileUpload" method = "post" Enctype = "multiPRET" -DATE/Form-data "<Brafary" <Brafary "<Brafars 1: <einputs-Datei". Datei 2: <Eingabe type = "Datei" name = "file2"/> <br> Uploader: <Eingabe type = "text" name = "uploader"/> <br> Datum: <Eingabe type = "text" name = "date"/> <br> <Eingabe type = "value = suruging"/> </Form> </body> </html>
download.jsp
<%@ page Language = "java" contentType = "text/html; charset = utf-8" pageCoding = "utf-8"%> <! docType html public "-// w3c // dtd html 4.01 transitional // en" http://www.w.w.w.w.w.w.w.w.w3. <%@page import = "java.util.list"%> <html> <kopf> <meta http-äquiv = "content-type" content = "text/html; charSet = utf-8"> <title> hier einfügen. ) request.getAttribute ("Dateinamen"); for(String fileName : fileNames) { %> <form action="FileUpload" method="get"> <input type="hidden" name="fileName" value="<%=fileName %>" /> <input type="submit" value="下载:<%=fileName %>" /> </form> <% } %> <br> ---------------------------- <% for(String fileName : Dateinamen) { %> <form action = "fileUpload" methode = "get"> <Eingabe type = "Hidden" name = "Dateiname" value = "< %= Dateiname %>" /> <Eingabe type = "Hidden" name = "online" value = "yes" /> < %"ig. </html>Dieser Artikel wurde in "Zusammenfassung der Java -Upload -Operationstechniken" zusammengestellt, und jeder kann gerne lernen und lesen.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.