Recentemente, fiz um upload de arquivo, download e abro arquivos on -line. No início, a interface de upload de arquivos contém outros formulários (como caixas de entrada, senhas etc.) e encontrou muitos problemas durante o processo de upload. Abaixo, escrevi um programa de teste que implementa simultaneamente o upload de arquivos, o download e abre arquivos online.
Primeiro, veja as renderizações:
Código central:
pacote com.jefry; importar java.io.file; importar java.io.fileInputStream; importar java.io.ioException; importar java.net.url; importar java.util.arraylist; importar java.util.iterator; importar java.util.list; importar javax.servlet.servletexception; importar javax.Servlet.ServletOutputStream; importar javax.servlet.http.httpServlet; importar javax.servlet.http.httpServletRequest; importar javax.servlet.http.httpServletResponse; importar org.apache.commons.fileupload.fileitem; importar org.apache.commons.fileupload.disk.diskfileItemFactory; importar org.apache.commons.fileupload.servlet.servletfileUpload; / ** * Classe de implementação do servlet fileUpload */ public class FileUpload estende httpServlet {private estático final serialversionuid = 1L; String final estática privada filedir = "f:/"; /*** Construtor padrão. */ public fileUpload () {} Void protegido Doget (solicitação httpServletRequest, httpServletResponse resposta) lança servletexception, ioexception {string afilename = request.getParameter ("filename"); String online = request.getParameter ("online"); FileInputStream em = null; ServletOutputStream Out = null; boolean isonline = online! = nulo? Verdadeiro: falso; tente {if (isonline) {url u = novo url ("arquivo: ///" + filedir + afilename); Response.setContentType (U.OPenconnection (). GetContentType ()); Response.setheader ("Content-Disposition", "Inline; filename ="+Afilename); } else {Response.SetContentType ("Application/X-MsDownload"); Response.setheader ("Content-Disposition", "Applement; filename =" + Afilename); } in = new FileInputStream (FileDir + Afilename); out = Response.getOutputStream (); out.flush (); int aread = 0; while ((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 (); }}} void protegido doPost (solicitação httpServletRequest, httpServletResponse resposta) lança servletexception, ioexception {try {diskFileItemFactory FileFactory = new DiskFileItemFactory (); ServletfileUpload fu = new ServletFileUpload (FileFactory); List fileItems = fu.parserequest (solicitação); Iterator iter = fileItems.iterator (); Uploader de string = null; String date = null; List <String> filenames = new ArrayList <String> (); while (iter.hasnext ()) {fileItem item = (fileItem) iter.Next (); if (! item.isformfield ()) {// arquive string oldfilename = item.getName (); String newFileName = null; int delimiter = OldFileName.LastIndexOf ("/"); if (delimiter == -1) newFileName = OldFileName.substring (delimiter + 1); else newFileName = OldFileName; filenames.add (newFileName); item.write (novo arquivo (Filedir + newFileName)); } else {// form string fieldname = item.getfieldName (); if ("uploader" .equals (fieldname)) {uploader = item.getString (); } else if ("date" .equals (fieldname)) {date = item.getString (); }}} request.setAttribute ("nomes de arquivo", nomes de arquivos); request.getRequestDispatcher ("Download.jsp"). Forward (solicitação, resposta); } catch (Exceção e) {}}} index.jsp
<%@ página linguagem = "java" contentType = "text/html; charset = utf-8" pageEncoding = "utf-8"%> <! Doctype html public "-// w3c // dtd html 4.01 transitório //" <html> <head> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"> <title> Insira título aqui </title> </head> <body> <form ação "> fileUpload" = "post" file: "hript) <body) <formul. <br> Arquivo 2: <input type = "file" name = "file2"/> <br> uploader: <input type = "text" name = "uploader"/> <br> Data: <input type = "text" name = "date"/> <br> <brut Type = "subit =" submit "/> </corpo"
Download.jsp
<%@ página linguagem = "java" contentType = "text/html; charset = utf-8" pageEncoding = "utf-8"%> <! Doctype html public "-// w3c // dtd html 4.01 transitório //" <%@página import = "java.util.list"%> <html> <head> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"> <title> inserir title aqui </title> </heeke <body> <br> <brf-8 "> <tim ) request.getAttribute ("nomes de arquivos"); para (string fileName: FILENames) { %> <form action = "fileUpload" method = "get"> <input type = "hidden" name = "filename" value = "< %= filename %>" /> < / /) < /cysp) : FILENOMES) { %> <form ação = "fileUpload" method = "get"> <input type = "hidden" name = "filename" value = "< %= nome do arquivo %>" /> <input type = "hidden" name = "online" /"sim" /> <input = "submit") </body> </html>Este artigo foi compilado em "Resumo das técnicas de operação de upload de Java", e todos são convidados a aprender e ler.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.