具體代碼如下所示:
*** web.xml *** <? xml版本=“ 1.0” encoding =“ utf-8”? > <web-app xmlns:xsi =“ http:///www.org/2001/xmlschema-2001/xmlschema-chema-indschema-ingstance” xmlns =“ xmlns =” XMLNS:Web =“ http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd” xsi:schemalocation =“ http://java.sun.com/xun.com/xml/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd“ id =“ webapp_id”版本=“ 2.5”> <servlet> <servlet-name> fileupload </servlet-name> fileupllet </servlet-name> <servlet-name> fileupload </servlet-name> <url-pattern>/fileupload </url-pattern> </servlet-mapping> </web-app>
package cn.com.action;import java.io.File;import java.io.*;import java.io.IOException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.httpservletResponse; import org.apache.commons.fileupload.fileitem; import org.apache.commons.fileupload.fileupload.fileuploadexception; import org.apache.compache.commons.fileupload.disk.diskfilemfactory importigemfactory; org.apache.commons.fileupload.servlet.servletfileupload;/** * * * @author管理員 *文件上傳 *具體步驟: * 1)獲得磁盤文件條目工廠diskfileitemfactory要導包 * 2)(2)(2))請求獲取請求獲取獲取獲取4)高水平的api文件上傳處理servletFileUploadupload = new ServletFileUpload(Factory); * parserequest(請求)方法方法方法方法fileitem list list, * 5)fileitem對像中對像中,遍歷 用第三方用第三方項目。 write(new File(path,filename)); 直接寫到磁盤上 *第二種。 手動處理 * */公共類FileUpload擴展了httpservlet {public void doget(httpservletrequest request,httpservletResponse響應)拋出servletexception,ioexception {request.set.setcharacterencterenceNcecting(set.setCharActerEncterEncoding(“ utf-8”); //設置編碼//獲得磁盤文件條目工廠diskFileItemFactory Factory = new DiskFileItemFactory(); //獲取文件需要上傳到的路徑字符串路徑= request.getRealPath(“/upload1”); // string path =“ c:/upload1”; //如果沒以下兩行設置的話,// // //設置暫時存放的,這個存儲室,這個存儲室,**/** ** *原理原理原理它是先存到, *然後在真正寫到, *按理來說, *按理來說,其實是上傳了兩份,其實是上傳了兩份,.tem。 //設置,當上傳文件的容量超過該緩存時,直接放到,工廠。 //高水平的api文件上傳處理servletFileUploadupload = new ServletFileUpload(Factory);嘗試{//可以上傳多個文件列表<FileTem> list =(List <FileItem>)upload.parserequest(request); for(fileItem item:list){//獲取表單的屬性名字字符串名稱= item.getFieldName(); //如果獲取的如果獲取的文本文本if(item.isformfield()){//獲取用戶具體輸入的字符串,,名字起得挺好,因為表單提交過來的是因為表單提交過來的是因為表單提交過來的是字符串類型的字符串類型的字符串類型的字符串類型的因為表單提交過來的是因為表單提交過來的是request.setAttribute(name,value); } else {//對傳入的非對傳入的非,比如說二進制的,電影這些/** *以下三步,主要獲取主要獲取,//////////////////////////////////////////////////////-- //索引到最後一個反斜杠int start = value.lastIndexof(“ //”); //截取截取上傳文件的,加1是,字符串fileName = value.substring(start+1); request.setAttribute(名稱,文件名); //真正寫到磁盤上//它拋出的異常用異常捕捉//item.write(new File(path,filename)); //第三方提供的//手動寫的// upputeStream out = new FileOutputStream(new File(new File(path,fileName))); inputStream in = item.getInputStream(); int長度= 0;字節[] buf = new Byte [1024]; system.out.println(“獲取上傳文件的總共:”+item.getSize()); // in.Read(buf)每次讀到的數據存放在buf數組中while((length = in.Read(buf))!= -1){// buf buf buf數組中數組中數組中寫到寫到) } in.close(); out.close(); }}} catch(fileuploadexception e){e.printstacktrace(); } catch(異常E){e.printstacktrace(); } request.getRequestDisPatcher(“ filedemo.jsp”)。 export(請求,響應); } public void dopost(httpservletrequest request,httpservletresponse響應)拋出了servletexception,ioexception {doget(request,wendesp); }}}*** index.jsp *** <%@ page語言=“ java” contentType =“ text/html; charset; charset = utf-8“ pageencoding =“ utf-8”%> <! docdype html public' - // w3c // w3c // ” http://www.w3.org/tr/html4/loose.dtd"> <html> <head> enctype =“倍增/form-data”方法=“ post”>用戶名稱:<input type =“ text” name =“ usEname”> <br/> <br/>上傳圖片:<input type type =“ file” name =“ file1”> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/>
*** filedemo.jsp *** <%@ page語言=“ java” import =“ java.util。用戶名稱:$ {requestScope.usename} <br />圖片名稱:$ {requestScope.file1} <br />文件名稱:$ {requestScope.file2} <br /> <! - > <img src =“ upload1 /<%=(總結
以上所述是小編給大家介紹的java實現上傳文件圖片到指定服務器目錄,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持! ,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!