Das von Apache bereitgestellte Commons-fileUpload-JAR-Paket ist in der Tat sehr einfach zu hochladen Dateien. Vor kurzem muss ich Servlet/JSP verwenden, um eine Image -Upload -Funktion auszuführen. Ich habe viele Informationen online gefunden, von denen die meisten auf der Grundlage des Struts -Frameworks eingeführt werden. Obwohl einige von ihnen auch den Upload von Common-FileUploads einführen, sind diese Beispiele relativ alt und einige Kategorien sind jetzt aufgegeben.
Durch die Zusammenfassung der Forschung und Studie wurde die Upload -Funktion endgültig abgeschlossen. Lassen Sie es mich unten mit Ihnen teilen.
Fallszenarien
Eine Bibliotheks -Backend -Verwaltungsoberfläche muss die Funktion zum Hochladen von Buchbildern bereitstellen und schließlich auf der Seite angezeigt werden.
Den Effekt erkennen
Geben Sie die Buch Addition -Seite ein, und das Standardbild wird "NO Breakthrough Noch" angezeigt (sowohl Länge als auch Breite sind 200px), und es wird eine Schaltfläche zum "Bild hochladen", wie im folgenden Bild gezeigt.
Klicken Sie auf die Schaltfläche "Bild hochladen", und die Upload -Schnittstelle wird durch das Modusfenster angezeigt, wie in der folgenden Abbildung gezeigt.
Wählen Sie das angegebene Bild über die Schaltfläche "Durchsuchen" auf die Schaltfläche "Hochladen" zum Hochladen klicken. Wenn der Upload erfolgreich ist, wird eine erfolgreiche Eingabeaufforderung angezeigt. Nachdem der Benutzer auf "OK" klickt, schließt das Popup-Fenster und zeigt das neue Bild auf der Seite automatisch an, wie in der Abbildung unten gezeigt.
Code -Implementierung
①First erstellen Sie ein Buch hinzufügen Seite: bookAdd.jsp
Mit dem versteckten Tag mit der Seiten -ID foto_id wird der Bildpfad gespeichert, der für die Einreichung in den Hintergrund geeignet ist und in der Datenbank gespeichert ist, und das <img> -Tag mit der ID von img_id wird verwendet, um die Bilder anzuzeigen. Alle Bilder werden unter dem Server zum einfachen Lesen gespeichert. Klicken Sie dann mit einer Taste JS auf die Schaltfläche, um die Upload -Seite durch das Modusfenster zu überladen. Wenn das Modusfenster aufgetaucht ist, wird ein variabler Gewinn definiert, mit dem der Bildpfadwert erhalten wird, der durch das Modusfenster übertragen wird.
(Hinweis: Aufgrund von Sicherheitsproblemen können Bilder nicht nach Belieben gespeichert werden. Wenn das Projekt auf dem Server bereitgestellt wird, können die Bilder nur unter dem Server angezeigt werden. Wenn Sie Bilder lesen müssen, die sich nicht unter dem aktuellen Server befinden, müssen Sie das virtuelle Verzeichnis des Servers konfigurieren)
<html> <kopf> <titels> Buch hinzufügen </title> <script type = "text/javaScript"> // Öffnen Sie die Funktion "upload) openUpload () {var win = window.showModaldialog (" <%= root%>/admin/bookUploLa.jsp "," "," "," Dialogwidth: 300Px;): 300PX;) Dialog: 300px; if (win! document.getElementById ("img_id"). src = "<%= root%>/"+win; }} </script> </head> <body> <h5> Buch hinzufügen </h5> <hr/> <p> Buch Cover: <label> <Eingabe type = "Hidden" id = "photo_id" name = "foto" value = "bilder/noimg.png" uplololod "/<butty" button = "miMgDoad ()" value ". src = "<%= root%>/bilder/noimg.png"> </label> </body> </html> ②Create Upload Bildseite, bookUpload.jsp
Beachten Sie, dass Sie das <base> -Tag definieren müssen. Die Daten können an das übergeordnete Formular zurückgegeben werden, wenn das aktuelle Modusfenster geschlossen ist. Das <Formular> -Tag muss auch eine Eigenschaft engType = "Multipart/Form-Data" festlegen, damit die eingereichten Dateien vom Hintergrund erhalten werden können. Klicken Sie auf die Schaltfläche "Upload", um die Dateien auf den Hintergrund zu übertragen. Das verbleibende Highlight ist die Upload -Verarbeitung von Hintergrund -Upload.
<html> <kopf> <meta http-äquiv = "content-type" content = "text/html; charSet = gbk"> <meta http-äquiv = "pragma" content = "no-cache"/> <span style = "color: #ff0000; <h5>Picture upload</h5><hr/> <p style="color: red">${requestScope.errorMsg}</p> <form id="form1" name="form1" action="<%=root%>/BookServlet?type=bookUpload" method="post" enctype="multipart/form-data"> <div>Note: The maximum image size cannot exceed 3M! ③Created ein gewöhnliches Servlet, nur einige der Schlüsselcodes sind unten bereitgestellt
Der rote Code -Teil ist der Schlüsselcode, der hochgeladen wurde, und die anderen werden als Verzierungen verwendet. Führen Sie diese drei Schritte aus und ein einfacher Upload wird erreicht.
Public Class BookServlet erweitert httpServlet {private String uploadPath = "Eshop/Upload/"; // Verzeichnis zum Hochladen von Dateien private String temppath = "Eshop/Uploadtmp/"; // Temporäres Dateiverzeichnis private String serverpath = null; private int sizemax = 3; // Maximale Bild Obergrenze private String [] Filetype = new String [] {". JPG", ". Gif", ". Bmp", ". Png", ". Jpeg", "Ico"}; public void dodget (httpServletRequest request, httpServletResponse -Antwort) löst ServletException aus, ioException {ServerPath = getServletContext (). getRealPath ("/"). Ersetzen ("//",/"); // Führen Sie aus, wenn Servlet initialisiert wird. Wenn das Uploadd -Dateiverzeichnis nicht vorhanden ist, erstellt es automatisch, wenn (! Neue Datei (ServerPath+UploadPath) .isDirectory ()) {neue Datei (ServerPath+UploadPath) .mkdirs (); } if (! Neue Datei (ServerPath+temppath) .isDirectory ()) {neue Datei (ServerPath+temppath) .mkdirs (); } <span style = "color: #ff0000;"> diskFileItemFactory factory = new diskFileItemfactory (); </span> factory // Maximum Cache Factory.setRepository (neue Datei (ServerPath+temppath)); // Temporäres Dateiverzeichnis <span style = "color: #ff0000; Versuchen Sie {<span style = "color: #ff0000;"> list <FileItem> items = Upload.ParSequest (Anfrage); </span> // Alle Dateiliste für (FileItem -Element: Elemente) {// Dateiname, dieses Dateiname enthält den Pfad <span Style = "color: #ff0000;"> Wenn (! isform. isformfield () isformfield () isformfield () isformfield (). item.getName (). tolowerCase (); if(fileName.endsWith(fileType[0])||fileName.endsWith(fileType[1])||fileName.endsWith(fileType[2])||fileName.endsWith(fileType[3])||fileName.endsWith(fileType[4])||fileName.endsWith(fileType[5])){ String uuid = UUid.randomuuid (). ToString (); filepath = serverpath+uploadPath+uUid+Dateiname.substring (Dateiname.lastIndexof (".")); <span style = "color: #ff0000;"> item.write (neue Datei (filepath)); </span> printwriter pw = response.getWriter (); pw.write ("<Script> alert ('erfolgreich hochgeladen); Window.ReturnValue ='"+UploadPath+UUID+Dateiname.substring (Dateiname.lastIndexof ("))+" '; pw.flush (); pw.close (); } else {request.setAttribute ("errormsg", "Upload fehlgeschlagen, bitte bestätigen Sie, dass die hochgeladene Datei existiert und ein Bild ist!"); Request.GetRequestDispatcher ("/admin/bookUpload.jsp"). Forward (Request, Antwort); }}}} catch (Ausnahme e) {e.printstacktrace (); Request.SetAttribute ("Errormsg", "Upload fehlgeschlagen, bitte bestätigen Sie, dass die hochgeladene Dateigröße"+Sizemax+"M" nicht überschreiten darf); Request.GetRequestDispatcher ("/admin/bookUpload.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.