Editar la página upload.html del archivo de carga
NOTA: Get no se puede usar al cargar la publicación (obtener los archivos no cargar)
La propiedad de formulario de cifrado debe establecerse en multipart/formularios de forma. (Indica que los datos enviados son un archivo binario)
cargar.html
<! DocType html> <html> <fead> <meta charset = "utf-8"> <title> Archivo de carga </title> </head> <body> <formy action = "uploadphotoservlet" método = "post" enctype = "multipart/form-data"> nombre de caracteres: <input type = "text" name = "heroname"/> <BR> upt a la carga: <input type "type: <input type" name = "FilePath"/> <br> <input type = "Subt" Value = "cargar"> </form> </body> </html>
Clase de carga de archivo carguetoToToServlet: desarrollo de la función de carga
Coloque los dos paquetes JAR Commons-IO-1.4.Jar y Commons-FileUpload-1.2.2.Jar en el directorio web-INF/lib.
import java.io.file; import java.io.fileOutputStream; import java.io.ioException; import java.io.inputstream; import java.io.printwriter; import java.util.iterator; import java.util.list; import javax.servlet.servletException; import javax.servlet.servletation; importación; javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletreSponse; importar org.apache.commons.fileupload.fileitem; import org.apache.commons.fileupload.fileUploadException; import org.apache.commons.fileupload.disk.diskfileitemFactory; importar org.apache.commons.fileupload.servlet.servletfileupload;/*** Servlet Class de implementación UploadPhotoservletlettlet */@Webservlet ("/uploadphotoservlet") clase pública uploadphotoservlet extiende httpservlet {private static final long SerialVersionUid = 1l; / ** * @see httpservlet#httpservlet () */ public uploadPhotoservlet () {super (); // TODO STUB de constructor generado automático}/** * @see httpservlet#doget (httpservletRequest request, httpServletResponse respuesta) */protegido void doget (httpservletRequest solicitud, httpServletResponse respuesta) tira servletexception, iOexception {// adoDO auto Response.getWriter (). Append ("Servido en:") .Append (request.getContextPath ()); Cadena filename = null; DiskFileItemFactory fábrica = new DiskFileItemFactory (); // Entrada de archivo de disco Factory ServletFileUpload upload = new ServletFileUpload (fábrica); // Responsable de procesar datos de archivo cargados y encapsular cada elemento de entrada en el formulario en un objeto FileItem // Establecer el tamaño de archivo cargado en 10M Factory.SetSizethReshold (2*1024*1024); Lista de elementos = nulo; Pruebe {// analizados analizados = upload.parserequest (solicitud); // Obtenga un objeto de lista que guarde todo el contenido cargado} Catch (FileUploadException e) {// TODO Generado automático BLOCK E.PRINTSTACKTRACE (); } Iterator iter = items.iterator (); // iterar a través de los datos de archivo cargados mientras (iter.hasnext ()) {fileItem item = (fileItem) iter.next (); if (! item.isformfield ()) {// Si no está cargado // crea el archivo Avatar basado en la marca de tiempo filename = system.currentTimemillis ()+". jpg"; // Obtenga la carpeta de carga a través de GetRealPath. Si el proyecto existe, no existirá en el proyecto actual, cree la carpeta del proyecto // Carpeta de imágenes String PhotoFolder = request.getServletContext (). GetRealPath ("Subiendo"); Archivo F = nuevo archivo (Photofolder, FileName); F.GetParentFile (). MkDirs (); // Si la carpeta principal no existe, se creará automáticamente // Obtener el archivo cargado por el navegador a través de item.getInputStream () inputStream IS = item.getInputStream (); // Lea el archivo en // Copiar el archivo FileOutputStream fos = new FileOutputStream (f); // Mostrar byte [] b = nuevo byte [2*1024*1024] en la interfaz; int len = 0; while ((len = is.read (b))! =-1) {fos.write (b, 0, len); } fos.close (); } else {System.out.println (item.getFieldName ()); // Heroname String Value = item.getString (); valor = new String (value.getBytes ("ISO-8859-1"), "UTF-8"); System.out.println (valor); // mulberry}} string html = "<img width = '200' height = '150' src = 'cargado/%s'/>"; respuesta.setContentType ("Text/html"); PrintWriter pw = respuesta.getWriter (); pw.format (html, nombre de archivo); } / ** * @see httpservlet#dopost (httpservletRequest solicitud, respuesta httpServletResponse) * / protegido void dopost (httpservletRequest solicitud, httpservletResponse respuesta) lanza ServletException, ioexception {// TODO Auto-generado de método doget (solicitud, respuesta); }}Resultados de ejecución:
Resumir
El anterior es el código de implementación para cargar archivos al servidor y mostrar funciones en consecuencia. Espero que sea útil para todos. Si tiene alguna pregunta, déjame un mensaje y el editor responderá a todos a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!