資源描述:
《java實(shí)現(xiàn)文件的上傳》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、java實(shí)現(xiàn)文件的上傳1、文件上傳的核心點(diǎn)1:用來聲明一個文件域。File:_____<瀏覽>.2:必須要使用post方式的表單。3:必須設(shè)置表單的類型為multipart/form-data.是設(shè)置這個表單傳遞的不是key=value值。傳遞的是字節(jié)碼.對于一個普通的表單來說只要它是post類型。默認(rèn)就是Content-type:application/x-www-from-urlencoded表現(xiàn)形式1:在request的請求頭中出現(xiàn)。2:在form聲明時設(shè)置一個類型enctyp
2、e="application/x-www-form-urlencoded";如果要實(shí)現(xiàn)文件上傳,必須設(shè)置enctype=“multipart/form-data”設(shè)置表單類型。表單與請求的對應(yīng)關(guān)系:2、如何獲取上傳的文件的內(nèi)容-以下是自己手工解析txt文檔packagecn.itcast.servlet;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamRead
3、er;importjava.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;/***如果一個表單的類型是post且enctype為multipart/form-date*則所有數(shù)據(jù)都是以二進(jìn)制的方式向服務(wù)器上傳遞。*所
4、以req.getParameter("xxx")永遠(yuǎn)為null。一定要注意。*只可以通過req.getInputStream()來獲取數(shù)據(jù),獲取正文的數(shù)據(jù)**@authorwangjianme**/publicclassUpServletextendsHttpServlet{publicvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{req.setCharacterEncoding("U
5、TF-8");Stringtxt=req.getParameter("txt");//返回的是nullSystem.err.println("txtis:"+txt);System.err.println("=========================================");InputStreamin=req.getInputStream();//byte[]b=newbyte[1024];//intlen=0;//while((len=in.read(b))!=-1){//Strings=newSt
6、ring(b,0,len);//System.err.print(s);//}BufferedReaderbr=newBufferedReader(newInputStreamReader(in));StringfirstLine=br.readLine();讀取分隔行。//讀取第一行,且第一行是分隔符號StringfileName=br.readLine();獲取文件名。fileName=fileName.substring(fileName.lastIndexOf("\")+1);//bafasd.txt"file
7、Name=fileName.substring(0,fileName.length()-1);br.readLine();br.readLine();Stringdata=null;//獲取當(dāng)前項(xiàng)目的運(yùn)行路徑StringprojectPath=getServletContext().getRealPath("/up");獲取項(xiàng)目的路徑。PrintWriterout=newPrintWriter(projectPath+"/"+fileName);while((data=br.readLine())!=null){if(d
8、ata.equals(firstLine+"--")){break;}out.println(data);}out.close();}}3、使用apache-fileupload處理文件上傳重點(diǎn)??蚣埽菏侵笇⒂脩艚?jīng)常處理的業(yè)務(wù)進(jìn)行一個代碼封裝。讓用戶可以方便的調(diào)用。目前文件上傳的(框架)組件:Apache----fi