1. Pacotes necessários:
1. Commons-FileUpload-1.2.1.jar:
Endereço para download
http://commons.apache.org/downloads/download_fileupload.cgi
2. Commons-io-1.4.jar:
Endereço para download
http://commons.apache.org/downloads/download_io.cgi
2. Notas:
Enctype = "Multipart/Form-Data" deve ser adicionado ao formulário
3. Exemplos de código
1. Código 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> upload </title> </ad Head> <body> <formulário de forma <tlain> <tablestertLey> Method = "Post" Enctype = "Multipart/Form-Datata"> <tay> <td> name </td> <td> <input type = "text" name = "name"> </td> </tr> <tr> <td> idade </td> <td> <input type = "text" name = "idade"> </td> </tr> <tr> <t> photo "</td> <td> <tr> <td> </td> <td> <input type = "submit" value = "submit"> </td> </tr> </table> </morm> </body> </html>
2. Código de upload de upload
pacote servlet; importar java.io.bufferInputStream; importar java.io.bufferedOutputStream; importar java.io.file; importar java.io.fileOutputStream; importar java.io.ioException; importar java.io.writer; importar java.util.iterator; importar java.util.list; importar javax.servlet.servletexception; 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.fileUploadexception; importar org.apache.commons.fileupload.fileUploadexception; importar org.apache.commons.fileupload.disk.diskfileItemFactory; importar org.apache.commons.fileupload.servlet.servletfileUpload; importar org.apache.commons.fileupload.util.streams; / ** * upload servlet * @author lisanlai * */ classe pública uploadServlet estende httpServlet {private estático final serialversionuid long) = 1L; public uploadServlet () {super (); } Void protegido Doget (solicitação httpServletRequest, httpServletResponse resposta) lança servletexception, ioexception {this.doPost (request, resposta); } @Suppresswarnings ("desmarcado") Protegido void DoPost (solicitação HttPervletRequest, resposta httpServletResponse) lança servletexception, ioexception {Response.setContentType ("text/html"); // Defina o caractere codificando como UTF-8, para que o caractere chinês seja exibido. Escritor o = resposta.getWriter (); /** * Primeiro, determine se o formulário Enctype é multipart/formulário * ao mesmo tempo, também determina se o método de envio do formulário é post * Método: ISMultipartContent (request) */if (servletFileupLoad.ismiPartContent (request)) {request.SetcharacterCoding "Utf-"; // instanciar uma fábrica de arquivos de disco rígido para configurar o componente de upload servletfileUpload diskfileItemFactory Factory = new DiskFileItemFactory (); // Defina a pasta temporária para armazenamento de arquivos, esta pasta deve realmente existir arquivo arquivedir = new arquivo ("../ webapps/fileupload/tmp/"); if (filedir.isdirectory () && filedir.exists () == false) {filedir.mkdir (); } factory.setRepository (FileDir); // Defina a fábrica ocupada por memória máxima.SetSizEthReshold (1024000); // crie servletfileUpload Object ServletFileUpload sfu = new ServletFileUpload (Factory); sfu.setheadeRencoding ("UTF-8"); // Defina o valor máximo de um único arquivo byte sfu.setFileSizEMAX (102400000); // A soma de todos os arquivos carregados é o máximo byte sfu.setsizemax (204800000); List <FileItem> itens = null; tente {itens = sfu.parserequest (request); } catch (sizelimitexededException e) {System.out.println ("O tamanho do arquivo excede o máximo"); } catch (fileUploadexception e) {e.printStackTrace (); } // Obtenha o iterador de itens iterador <FileItem> iter = itens == null? Null: items.iterator (); // Diretório de caminho armazenado após imagens de arquivo de upload da imagem = novo arquivo ("d:/upload/imagens/"); if (imagens.exists () == false) {imagens.mkdirs (); } // itens de iteração while (iter! = Null && iter.hasnext ()) {fileItem item = (fileItem) iter.next (); // se o passado for um campo de formulário comum se (item.isformfield ()) {System.out.print ("Formulário Ordinário de Formulário:"); System.out.print (new String (item.getfieldName ()) + ""); System.out.println (new String (item.getString ("utf-8"))); } // campo de arquivo else if (! Item.isformfield ()) {System.out.println ("Fonte de origem:" + item.getName ()); String filename = item.getName (). Substring (item.getName (). LastIndexOf ("//")); BufferInputStream in = new bufferInputStream (item.getInputStream ()); // O arquivo é armazenado no diretório d:/upload/imagens, e este diretório também deve ter bufferoutputStream out = new BufferoudOutputStream (new FileOutputStream (novo arquivo (imagens.getabsolutepath ()+ filename))); Streams.copy (in, Out, True); o.Write ("Upload de arquivo bem -sucedido"); }}}} else {System.out.println ("Erro do tipo de formulário Enctype"); }}}}} 3. Web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns: web = "http://java.sun.com/xml/ns/javaee" xmlns: web = "http://java.sun.com/xml/ns/javaee/web-app_2.xsd" xsi: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id = "webapp_id" = "2.5">>> <lmed-File> upload.jsp </limk-fil-bile> </-Welcome-File-List> <Verlet> <cription> </cription> <lor-name> uploadservlet </sisiber-name> <Verlet-name> uploadservlet </ervlet-name> <Vertlet-class> servlet.UPLOADLETLlet </Servlet> <///Servlet> servlet.uplObrlet </servlet> <///Servlet> servlet.uPllettlet </Servlet> <///Servlet> servlet.uPllet </Servlet> <//servlet> <Verlet-name> uploadServlet </servlet-name> <url-tattern>/uploadServlet </url-tattern> </servlet-mapping> </web-app>
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.