Actualmente hay dos métodos comúnmente utilizados para la carga de archivos, uno es SmartUpload y el otro es el FileUpload de Commons de Apache.
Aquí presentamos principalmente el uso del segundo. Primero, debe cargar el archivo y prestar atención a varios problemas:
1 En el formulario, agregue espacio <input type = "file" name = "myfile">
2 El formato de contenido del formulario se debe definir como formato multipart/formato de forma
3 Biblioteca de clase requerida: 1 Commons-IO.Jar 2 Commons-FileUpload-1.3.1.Jar
A continuación, echemos un vistazo al uso.
Primero, lea la documentación oficial de Apache Commons FileUpload y puede encontrar las siguientes funciones de uso común:
1 Crear un objeto de análisis de archivos
La copia del código es la siguiente: diskfileUpload diskfileUpload = new DiskFileUpload ();
2 Después de analizar el archivo, colóquelo en la lista. Debido a que esta biblioteca de clases admite múltiples cargas de archivos, el resultado se almacenará en la lista.
La copia del código es la siguiente: List <StilEitem> list = diskfileUpload.parserequest (solicitud);
3 Obtenga archivos cargados y realice un análisis (no es necesario)
La copia del código es la siguiente: Archivo RemoteFile = New File (new String (fileitem.getName (). GetBytes (), "UTF-8"));
4 Crear un nuevo objeto y realizar una copia de transmisión
file1 = nuevo archivo (this.getServletContext (). getRealPath ("adjunto"), remotoFile.getName ()); file1.getParentFile (). MkDirs (); file1.createNewFile (); InputStream INS = fileItem.getInputStream (); OutputStream oUs = new FileOutputStream (file1); intente {byte [] buffer = new Byte [1024]; int len = 0; while ((len = ins.read (buffer))> -1) ouswrite (buffer, 0, len); out.println ("para guardar archivo"+file1.getabsolutePath ()+"<br/>"); } finalmente {oussclose (); ins.close (); }De esta manera, completamos la carga del archivo.
fileupload.html
<form de acción = "servlet/uploadServlet" método = "post" enctype = "multipart/form-data-data"> <Div align = "Center"> <FieldSet> <Legend> Liberidad de carga </Legend> <BR/> <Div Div Align = "Left> Left File1 </Div Div> <Viv Align =" Left "> COOW ARCELAR </DIV> <VIV) name="file1"/> </div> <div align="left">Upload file2</div> <div align="left"> <input type="file" name="file2"/> </div> <div> <div align='left'>Upload file instructions1</div> <div align='left'><input type="text" name="description1"/></div> </div> <div> <div Align = 'Left'> Cargar Instrucciones de archivo2 </iv> <div align = 'izquierda'> <input type = "text" name = "description2"/> </div> </div> <div> <div> <div align = 'left'> <input type = 'shit' value = "archivo de carga"/> </div> </silset> </div> </form>
web.xml
<servlet> <servlet-name>UploadServlet</servlet-name> <servlet-class>com.test.hello.UploadServlet</servlet-class> </servlet><servlet-mapping> <servlet-name>UploadServlet</servlet-name> <url-pattern>/servlet/UploadServlet</url-pattern> </servlet-mapping>
SubaLoadServlet.java
paquete com.test.hello; import java.io.file; import java.io.fileOutputStream; import java.io.ioException; import java.io.inputstream; import java.io.outputstream; import java.io.printwriter; import java.util.list; importar javax.servlet.servletexception; importar; javax.servlet.http.httpservlet; import javax.servlet.http.httpservletRequest; import javax.servlet.http.httpservletResponse; importar org.apache.commons.fileupload.diskfileUpload; importar; org.apache.commons.fileupload.fileitem; import org.apache.commons.fileUpload.fileUploadException; public class uploadServlet extiende httpservlet { /*** constructor del objeto. */ public uploadServlet () {super (); } /*** Destrucción del servlet. <br> */ public void destruye () {super.destroy (); // solo pone la cadena "destruir" en log // coloca tu código aquí} /*** El método de Doget del servlet. <br> * * Este método se llama cuando un formulario tiene su método de valor de etiqueta es igual a obtener. * * @param solicita la solicitud enviada por el cliente al servidor * @param respuesta La respuesta envía por el servidor al cliente * @throws servletException Si ocurrió un error * @throws ioexception si se produjo un error */ public void doget (httpservletRequest solicitud, httpServletResponse respuesta) shows servletException, iOexception {respuesta. Respuesta. Respuesta. Response.getWriter (). println ("por favor cargue el archivo en la publicación"); } /*** El método Dopost del servlet. <br> * * Este método se llama cuando un formulario tiene su método de valor de etiqueta es igual a publicar. * * @param solicita la solicitud La solicitud envía por el cliente al servidor * @param Respuesta La respuesta envía por el servidor al cliente * @throws ServletException si ocurrió un error * @throws ioexception si un error ocurrió */ @SuppressWarnings ({"no verchado", "}) public void dopoost (httpServeRetRequest, hettPsEntsEntsEntsEntRetRets, httpSEntsEntsEntsEntSetRetRetRetRes. ServletException, ioException {file file1 = null, file2 = null; String Descripción1 = null, description2 = null; respuesta.setcharacterEncoding ("UTF-8"); request.setcharacterEncoding ("UTF-8"); respuesta.setContentType ("Text/html"); PrintWriter out = Response.getWriter (); DiskfileUpload diskfileUpload = new DiskFileUpload (); Pruebe {list <StilEitem> list = diskfileUpload.parserequest (request); out.println ("Transfiera todos los archivos de FileItems ... <br/>"); for (fileItem fileItem: list) {if (fileItem.isformfield ()) {if ("description1" .equals (fileitem.getFieldName ())) {out.println ("transferir a la descripción1 ... <br/>"); description1 = new String (fileitem.getString (). getBytes (), "UTF-8"); } if ("Descripción2" .Equals (fileitem.getFieldName ())) {out.println ("Viaje a la descripción2 ... <br/>"); description2 = new String (fileItem.getString (). GetBytes (), "UTF-8"); }} else {if ("file1" .equals (fileItem.getFieldName ())) {file remoteFile = new File (new String (fileitem.getName (). getBytes (), "utf-8")); out.println ("viajar a file1 ... <br/>"); out.println ("Ubicación del archivo del cliente:"+remotos :getabsolutePath ()+"<br/>"); file1 = nuevo archivo (this.getServletContext (). getRealPath ("adjunto"), remotoFile.getName ()); file1.getParentFile (). MkDirs (); file1.createNewFile (); InputStream INS = fileItem.getInputStream (); OutputStream oUs = new FileOutputStream (file1); intente {byte [] buffer = new Byte [1024]; int len = 0; while ((len = ins.read (buffer))> -1) ouswrite (buffer, 0, len); out.println ("para guardar el archivo"+archivo1.getabsolutePath ()+"<br/>"); } finalmente {oussclose (); ins.close (); }} if ("file2" .equals (fileItem.getFieldName ())) {file remoteFile = new File (new String (fileitem.getName (). getBytes (), "utf-8")); out.println ("viajar a file2 ... <br/>"); out.println ("Ubicación del archivo del cliente:"+remotos :getabsolutePath ()+"<br/>"); file2 = nuevo archivo (this.getServletContext (). getRealPath ("adjunto"), remotoFile.getName ()); file2.getParentFile (). MkDirs (); file2.createenewfile (); InputStream INS = fileItem.getInputStream (); OutputStream ous = new FileOutputStream (File2); intente {byte [] buffer = new Byte [1024]; int len = 0; while ((len = ins.read (buffer))> -1) ouswrite (buffer, 0, len); out.println ("para guardar archivo"+file2.getabsolutePath ()+"<br/>"); } finalmente {oussclose (); ins.close (); }}} out.println ("El análisis de solicitud se completa <br/> <br/>"); }} Catch (FileUploadException e) {} out.println ("<! DocType html public/"-// w3c // dtd html 4.01 transitional // en/">"); out.println ("<Ethead> <title> un servlet </title> </head>"); out.println ("<body>"); if (file1! = null) {out.println ("<div>"); out.println ("<div align = 'izquierda'> file1; </div>"); out.println ("<Div align = 'left'> <a href = '"+request.getContextPath ()+"/adjunto/"+file1.getName ()+"' target = _blank>"+file1.getName ()+"</a>"); out.println ("</div>"); out.println ("</div>"); } if (file2! = null) {out.println ("<div align = 'izquierda'> file2; </div>"); out.println ("<Div align = 'left'> <a href = '"+request.getContextPath ()+"/apegado/"+file2.getName ()+"' target = _blank>"+file2.getName ()+"</a>"); out.println ("</div>"); out.println ("</div>"); } out.println ("<Viv>"); out.println ("<div align = 'izquierda'> descripción1: </div>"); out.println ("<div align = 'izquierda'>"); out.println (descripción1); out.println ("</div>"); out.println ("</div>"); out.println ("</div>"); out.println ("<div align = 'izquierda'> descripción2: </div>"); out.println ("<div align = 'izquierda'> descripción2: </div>"); out.println ("<div align = 'izquierda'>"); out.println ("</div>"); out.println ("</div>"); out.println ("</body>"); out.println ("</html>"); out.flush (); out.close (); } /*** Inicialización del servlet. <br> * * @throws ServletException Si ocurre un error */ public void init () lanza ServletException {// Pon su código aquí}}Ejemplo de ejecución
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.