Os uploads de arquivos incluem o SmartUpload e o Apache Commons FileUpload. Hoje, apresentaremos o uso do FileUpload do Commons.
1.Commons-FileUpload-1.3.1.Jar
Endereço para download: http://xiazai.vevb.com/201608/yuanma/javawebfileupload(vevb.com).rar
2.Web.xml
<!-Carregue o lado do servidor de arquivos-> <Vertlet> <Verlet-name> uploadServlet </servlet-name> <Servlet-class> com.servlet.uploadservlet </servlet-class> <iit-param> <amam-name> filepath </param-name> <!-Arquivo Path-> <amam-value> f:/myeclipse/workspaces/king/webrootroot/uploadfile/</param-value> </irit-param> </servlet> <sivel-mapping> <Verlet-name> uploadServlet </-NAME> <url-Pattern>/servleting> uploadServLe Action = "Servlet/uploadServlet" Method = "post" ENCTYPE = "Multipart/Form-Data"> <div align = "Center"> <Fieldset> <legend> File </legend> <br/> <Div align = "Left"> upload file1 </div> <Div align = "Left" <input Type = "FILDE ="> FILDE) ALIGN = "LEFT"> FOLHAR FILE2 </div> <div align = "Left"> Upload file2 </div> <div align = "Left"> Upload File1 </div> <div align = "Left"> File1 </div> <div align = "left"> upload file2 </div> <div align = "Left" <freten> <fut> <input "<input" typen) ALIGN = 'SUFICE'> Faça o upload do arquivo Descrição1 </div> <div align = 'esquerd'> <input type = "text" name = "description1"/> </div> </div> <div> <div align = 'esquerda'> upload Arquivo Descrição2 </niv> <align = 'esquerd'> <input type = "text" name = ""2 "2"/" type = 'submeter' value = "upload file"/> </div> </div> </div> </fieldset> </div> </morm>
3.Servlet
pacote com.servlet; importar java.io.file; importar java.io.fileOutputStream; importar java.io.ioException; importar java.io.inputStreamReader; import java.io.outputStream; import java.io.printwriter; import java.util.list; javax.servlet.http.httpServlet; importar javax.servlet.http.httpServletRequest; importar javax.servlet.http.httpServletResponse; importação org.apache.commons.fileUpload.diskfileUpload; org.apache.commons.fileupload.fileitem; importar org.apache.commons.fileupload.fileuploadexception; importar sun.swing.FilePane; classe pública uploadServlet estende httpServleTle {private string filepath; /*** Destruição do servlet. <br> */ public void Destroy () {super.Destroy (); // Apenas coloca a sequência "Destroy" em log // coloca seu código aqui} public void Doget (solicitação httpSerTlequest, httpServletResponse Response) lança servletexception, ioexception {Response.SetcharActaracterencoding ("UTF-8"); Response.getWriter (). println ("Por favor, carregue o arquivo no post"); } public void DoPost (solicitação httpServletRequest, httpServletResponse Response) lança servletexception, ioexception {arquivo file1 = null, file2 = null; String Descrição1 = NULL, Descrição2 = NULL; Response.Setcharacterencoding ("UTF-8"); request.setcharacterencoding ("UTF-8"); Response.setContentType ("Text/html"); PrintWriter out = Response.getWriter (); DiskFileUpload DiskFileUpload = new DiskFileUpload (); // Polícia de análise Try {List <FileItem> filEList = diskfileUpload.parsequest (request); // coloque o resultado na lista.println ("Trace através de todo o arquivo ... </br>"); this.log ("Rastreie todo o FileItem ..."); para (fileItem fileItem: filelist) {if (fileItem.isformfield ()) {// se for um campo de texto se ("description1" .equals (fileItem.getfieldName ())) {out.println ("viaje para descrição1 ... </br>"); Descrição1 = new String (fileItem.getString (). getBytes (), "UTF-8"); } if ("description2" .equals (fileItem.getfieldName ())) {out.println ("viaje para descrição2 ... </br>"); Descrição2 = new String (fileItem.getString (). getBytes (), "UTF-8"); }} else {// Caso contrário, é o campo de arquivo se ("file1" .equals (FILEITEM.GETFILEDNAME ())) {FILE REMOTEFILE = new File (new String (FileItem.getName (). getBytes (), "utf-8"); out.println ("Viaje para o arquivo1 ... </br>"); out.println ("Localização do arquivo do cliente:"+remotefile.getabsolutepath ()+"</br>"); // Arquivo do lado do servidor, coloque na pasta uploadfile file1 = novo arquivo (filepath, remotefile.getName ()); file1.getParentFile (). mkdirs (); // Crie o caminho da pasta File1.CreateNewfile (); // Crie um novo arquivo inputStream ins = fileItem.getInputStream (); // fileItem de conteúdo outputStream OUS = new FileOutputStream (file1); 0; // Comprimento real do cache while ((len = ins.read (buffer))> -1) {// loop lido no cache ous.write (buffer, 0, len); } out.println ("salvar arquivo"+file1.getabsolutepath ()+"</br>"); } finalmente {ous.close (); ins.close (); }} if ("file2" .equals (fileItem.getfieldName ())) {file remotefile = new File (new String (fileItem.getName (). getBytes (), "utf-8"); out.println ("Viaje para o arquivo2 ... </br>"); out.println ("Localização do arquivo do cliente:"+remotefile.getabsolutepath ()+"</br>"); // Arquivo do lado do servidor, coloque na pasta do uploadfile file2 = novo arquivo (filepath, remotefile.getName ()); file2.getParentFile (). mkdirs (); // Crie o caminho da pasta File2.CreateNewFile (); // Crie um novo arquivo inputStream ins = fileItem.getInputStream (); // conteúdo de fileItemsTream OUS = new FileOutputStream (file2); 0; // Comprimento real do cache while ((len = ins.read (buffer))> -1) {// loop lido no cache ous.write (buffer, 0, len); } out.println ("salvar arquivo"+file2.getabsolutepath ()+"</br>"); } finalmente {ous.close (); ins.close (); }}}} out.println ("A análise da solicitação está concluída"); } catch (fileUploadexception e) {// Bloco de captura gerado automaticamente do TODO out.println ("<html>"); out.println ("<head> <title> um servlet </ititle> </ad Head>"); out.println ("<body>"); if (file1! = null) {out.println ("<div align = 'esquerd'> file1; </div>"); out.println ("<div align = 'esquerda'> <a href = '"+request.getContextPath ()+file1.getName ()+"' Target = _blank>"+file1.getName ()+"</a>"); out.println ("</div>"); out.println ("</div>"); } if (file2! = null) {out.println ("<div align = 'esquerda'> file2; </div>"); out.println ("<div align = 'esquerda'> <a href = '"+request.getContextPath ()+file2.getName ()+"' alvo = _blank>"+file2.getName ()+"</a>"); out.println ("</div>"); out.println ("</div>"); } out.println ("<div>"); out.println ("<div align = 'esquerda'> description1: </div>"); out.println ("<div align = 'esquerda'> description2: </div>"); out.println ("<div align = 'esquerda'> description2: </div>"); out.println ("<div align = 'esquerda'> description2: </div>"); out.println ("<div align = 'esquerda'>"); out.println ("<div align = 'esquerda'>"); out.println ("<div align = 'esquerda'>"); out.println (description2); out.println ("</div>"); out.println ("</div>"); out.println ("</body>"); out.println ("</html>"); out.flush (); out.Close (); }} public string getServletinfo () {return "Este é o meu servlet padrão criado pelo eclipse"; } public void init () lança servletexception {// coloque seu código aqui filepath = getServletConfig (). getinitParameter ("filepath"); }}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.