Recientemente, he realizado un archivo de carga, descarga y abre archivos en línea. Al principio, la interfaz de carga de archivos contiene otros formularios (como cuadros de entrada, contraseñas, etc.) y encontró muchos problemas durante el proceso de carga. A continuación escribí un programa de prueba que implementa simultáneamente la carga de archivos, descarga y abre archivos en línea.
Primero, vea las representaciones:
Código central:
paquete com.Jefry; import java.io.file; import java.io.fileInputStream; import java.io.ioException; import java.net.url; import java.util.arrayList; import java.util.iterator; import java.util.list; import javax.servlet.servletException; import javax.servlet.servletOutputStream; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletRequest; import javax.servlet.http.httpservletResponse; importar org.apache.commons.fileUpload.fileitem; importar org.apache.commons.fileupload.disk.diskfileitemFactory; importar org.apache.commons.fileUpload.servlet.servletFileUpload; / ** * Servlet Clase de implementación FileUpload */ public class FileUpload extiende httpservlet {private static final long serialversionUid = 1l; cadena final estática privada FileDir = "f:/"; /*** Constructor predeterminado. */ public FileUpload () {} protegido void doget (httpservletRequest solicitud, respuesta httpServletResponse) lanza ServLetException, ioException {string afileName = request.getParameter ("fileName"); Cadena en línea = request.getParameter ("en línea"); FileInputStream in = null; ServletOutputStream out = null; boolean isonline = en línea! = NULL? verdadero: falso; intente {if (isonline) {url u = new url ("file: ///" + fileDir + afileName); respuesta.setContentType (U.OpenConnection (). GetContentType ()); respuesta.setheader ("Disposición de contenido", "Inline; FileName ="+Afilename); } else {Response.SetContentType ("Application/X-Msdownload"); respuesta.setheader ("Disposición de contenido", "Adjunto; FileName =" + Afilename); } in = new FileInputStream (FileDir + AfileName); out = respuesta.getOutputStream (); out.flush (); int aread = 0; while ((a aread = in.read ())! = -1 & in! = null) {out.write (aread); } out.flush (); } catch (Throwable E) {E.PrintStackTrace (); } finalmente {try {in.close (); out.close (); } catch (Throwable E) {E.PrintStackTrace (); }}} protegido void dopost (httpservletrequest solicitud, httpservletResponse respuesta) arroja servletException, ioexception {try {diskfileItemFactory fileFactory = new DiskFileItemFactory (); ServletFileUpload fu = new ServLetFileUpload (fileFactory); Lista de fileitems = FU.Parserequest (solicitud); Iterator iter = fileItems.Iterator (); String uploader = null; String date = null; List <String> FileNames = New ArrayList <String> (); while (iter.hasnext ()) {fileItem item = (fileItem) iter.next (); if (! item.isformfield ()) {// archivo string OldFileName = item.getName (); String newFileName = null; int delimiter = OldFilename.lastIndexof ("/"); if (delimitador == -1) newFileName = OldFileName.substring (delimitador + 1); else NewFileName = OldFileName; FileNames.Add (NewFileName); item.write (nuevo archivo (FileDir + newFileName)); } else {// form de cadena fieldame = item.getFieldName (); if ("portainter" .equals (fieldName)) {uploader = item.getString (); } else if ("date" .equals (fieldName)) {date = item.getString (); }}} request.SetAttribute ("nombres de archivo", nombres de archivo); request.getRequestDIsPatcher ("download.jsp"). Foring (Solicitar, respuesta); } catch (excepción e) {}}} index.jsp
<%@ page lenguaje = "java" contentType = "text/html; charset = utf-8" PageEncoding = "utf-8"%> <! DocType html public "-// w3c // dtd html 4.01 transición // en" "http://www.w3.org/tr/html4/loos.dttd <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <form action="FileUpload" method="post" enctype="multipart/form-data"> <br> File 1: <input type="file" name="file1" /> <br> File 2: <input type = "file" name = "file2"/> <br> uploader: <input type = "text" name = "uploader"/> <br> date: <input type = "text" name = "date"/> <br> <input type = "enviar" valor = "enviar"/> </form> </body> </html>
descargar.jsp
<%@ page lenguaje = "java" contentType = "text/html; charset = utf-8" PageEncoding = "utf-8"%> <! DocType html public "-// w3c // dtd html 4.01 transición // en" "http://www.w3.org/tr/html4/loos.dttd <%@page import = "java.util.list"%> <html> <fead> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"> <title> Insertar aquí </title> </head> <body> <br> -------------- 直接下载 ------------------ <r> <%LIST <ST STRILE> ) request.getAttribute ("FileNames"); for (String FileName: FileNames) { %> <Form Action = "FileUpload" Method = "get"> <input type = "Hidden" name = "filename" value = "< %= fileName %>" /> <input type = "enviar" value = "下载: < %= filename % % %>" /< /form> < %} %> <rem> ----------------- FileNames) { %> <Form Action = "FileUpload" Method = "get"> <input type = "Hidden" name = "filename" value = "< %= filename %>" /> <input type = "Hidden" name = "en línea" valor = "sí" /> <input type = "ship" value = "open: < %= filename %>" /> < /< %} %} </html>Este artículo se ha compilado en "Resumen de las técnicas de operación de carga Java", y todos son bienvenidos a aprender y leer.
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.