Dieser Artikel teilt den spezifischen Code für Java zum Implementieren von Datei -Hochladen und Download -Funktion für Ihre Referenz. Der spezifische Inhalt ist wie folgt
Das Front-End verwendet die EngePe-Eigenschaft des Formularsformulars, um die Datenliefernmethode in das binäre "Stream" -Form zu ändern. Der Server (Servlet) erhält die Flussinformationen über getInputStream () und verwendet die grundlegenden Vorgänge des Java -E/A -Streams, um den Flow in eine vom Server erstellte Dateitemperatur zu schreiben. Verwenden Sie dann die grundlegenden Dateioperationen erneut, um den Inhalt der temporären Datei zu lesen und abzufangen, die entsprechende Datei basierend auf den darin enthaltenen Informationen zu erstellen und die spezifischen Informationen auszulesen. Suchen Sie beim Herunterladen die entsprechende Datei auf dem Server basierend auf dem eingereichten Dateinamen und geben Sie sie dann gemäß dem Ausgabestream überstream aus und setzen Sie den Antworttyp und den Antwortheader des Servlets.
Der spezifische Übertragungsprozess ist wie folgt:
Der Teil der Flussinformationen ist:
Der spezifische Code lautet wie folgt:
Front-End-Code:
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Insert title here</title><script src="Js/jquery.js"></script></head><body> <form action="FileUpServlet" method="post" enctype="multipart/form-data"> <table> <tr> <td> Bitte auswählen Sie die Datei hochladen: </td> <td> <input id = "myFile" name = "myFile" type = "Datei" value = ""/> </td> <td> <Eingabe type = "value =" upload "> </td> </tr> </table> <tabels> </table> <tabels> $ $}} {info}}}}}}}}} {{{tb. <a href = "fileLoadownServlet? Dateiname = $ {Dateiname}"> $ {Dateiname} </a> </body> </html>Laden Sie den Servlet -Teil hoch (Kern)
@WebServlet ("/FileUpServlet") öffentlichklasse FileUpServlet erweitert httpServlet {private statische endgültige long serialversionuid = 1l; / ** * @see httpServlet#httpServlet () */ public FileUpServlet () {Super (); // automatisch generierte Konstruktor-Stub}/ ** * @see httpServlet#dagget (httpServletRequest Request, HttpServletResponse-Antwort) */ Protected void dodget (httpServletrequest Request, HttpeVletRespect-Response) -Methode, die Diener-Methode, IOOException | Dopost (Anfrage, Antwort); } / ** * @see httpServlet#dopost (httpServletRequest-Anforderung, httpServletResponse-Antwort) * / Protected void dopost (httpServletRequest-Anforderung, HttpServletRespletRespect) -Ponaktion, IoException {// todo auto-geesponsed reagieren Sie die Methode-Methode-Sturungs-Methode-Methode-Sturungsmethode, request.setcharactercoding ("utf-8"); InputStream fileSource = request.getInputStream (); // Anfrage Stream Information String tempname = "d:/temp"; // tempfile repräsentiert temporäre Speicher von Dateien von Dateien tempfile = Neue Datei (tempname); // Temporäre Dateidatei -Datei -Datei -OutputStream -Refream -Refream -Refream -Refream -Refream -Refream -Refreams -Refreams (TempFile). = neues Byte [1024]; int n; while ((n = fileSource.read (b))! } outputStream.close (); fileSource.close (); // Schließen Sie den Eingangs- und Ausgabestream/*Die folgenden Dateivorgänge sind hauptsächlich für die Parsen temporärer generierter Temp -Dateien, und der größte Teil des Wissens ist der Inhalt des Java -Eingangs- und Ausgabestreams! */Randomaccessfile randomfile = new randomAccessfile (tempfile, "r"); // random stream, geben an, um temporäre Dateien zu lesen. = Str. Lastindexof ("/" "); // Geben Sie den Speicherort des erforderlichen Datenstring -Dateiname an. ! > = 0 && j <= 2) {endText--; System.out.println (RealPath); randomFile.seek (startExt); TimEd = New SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); Request.GetRequestDispatcher ("/fildeop.jsp"). Forward (Request, Antwort);Download -Abschnitt
Protected Void Dopost (httpServletRequest-Anforderung, HttpServletResponse-Antwort) löst ServletException aus, iOException {// Todo automatisch generierte Methode Stub String-Dateiname = Request.GetParameter ("Dateiname"); String path = getServletContext (). GetRealPath ("/")+"Bilder/"; Datei Datei = neue Datei (Pfad+Dateiname); // Datei if (file.exists ()) {response.setContentType ("application/x-msdownload"); // Setzen Sie den Antworttyp, hier ist der Download-Typ Antwort. // InputStream inputStream = new FileInputStream (Datei) öffnen; ServletOutputStream outputStream = response.getOutputStream (); Byte B [] = neues Byte [1024]; int n; while ((n = inputStream.read (b))! = -1) {outputStream.write (b, 0, n); } outputStream.close (); inputStream.close (); } else {Request.SetAttribute ("Ergebnis", "Die Datei existiert nicht! Download fehlgeschlagen!"); request.getRequestDispatcher ("/fildeop.jsp"). Forward (Request, Antwort); }}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.