Este artículo comparte el código específico para la descarga de archivos de servlet para su referencia. El contenido específico es el siguiente
No es seguro exponer el directorio de archivos directamente al usuario. Por lo tanto, debe usar servlets, y de esta manera, los archivos se almacenarán de manera más abundante. Se pueden recuperar del sistema de archivos, generado por cálculos en la base de datos o recuperados de otros lugares extraños.
public class downloadServlet extiende httpservlet {private string contentType = "application/x-msdownload"; cadena privada enc = "utf-8"; cadena privada fileroot = ""; / ** * Inicializar ContentType, ENC, FileRoot */ public void init (ServletConfig config) lanza ServletException {String temptr = config.getInitParameter ("ContentType"); if (temptr! = null &&! temptr.equals ("")) {contentType = temptr; } temptr = config.getInitParameter ("enc"); if (temptr! = null &&! temptr.equals ("")) {enc = temptr; } temptr = config.getInitParameter ("FileRoot"); if (temptr! = null &&! temptr.equals ("")) {fileroot = temptr; }} protegido void doget (httpservletRequest solicitud, respuesta httpservletResponse) lanza ServletException, ioException {String filePath = request.getParameter ("filePath"); Cadena FullFilepath = FileRoot + FilePath; /*Leer archivo*/ archivo archivo = nuevo archivo (fullFilePath); /*Si el archivo existe*/ if (file.exists ()) {string filename = urlencoder.encode (file.getName (), enc); respuesta.reset (); respuesta.setContentType (contentType); Respuesta.AddHeader ("Disposición de contenido", "Adjunto; FileName =/" " + FileName +"/""); int filelength = (int) file.length (); respuesta.setContentLength (fileLength); /*Si la longitud del archivo es mayor que 0*/ if (fileLength! = 0) {/*Crear transmisión de entrada*/ inputStream Initream = new FileInputStream (archivo); byte [] buf = nuevo byte [4096]; /*Crear transmisión de salida*/ servletoutputstream servletos = respuesta.getOutputStream (); int readLength; while ((((readLength = InSteam.Read (buf))! = -1)) {servletos.write (buf, 0, readLength); } IntileM.Close (); servletos.flush (); servletos.close (); }}} web.xml
<Servlet> <Servlet-name> downloadServlet-Name> <Servlet-Class> org.mstar.servlet.downloadServletServlet-class> <Init-param> <Param-name> filerooTparam-name> <amlar-Value> d:/temparam-value> init-param> <itelparam> <amamname> contenttitteParam-name> <Param-Value> Application/X-MsdowloadcarParam-Value> Init-Param> <Init-param> <amamname> encparam-name> <amam-value> utf-8param-value >>> init-param> servlet> <ervlet-mapping> <servlet-name-name> descargar-name> <url-pattern>/downurn> servlet> asignlet-asignal>-name> descargar name> <url-pattern>/downurn> servlet>
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.