資源描述:
《java實(shí)現(xiàn)文件的上傳》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、java實(shí)現(xiàn)文件的上傳1、文件上傳的核心點(diǎn)1:用來(lái)聲明一個(gè)文件域。File:_____<瀏覽>.2:必須要使用post方式的表單。3:必須設(shè)置表單的類(lèi)型為multipart/form-data.是設(shè)置這個(gè)表單傳遞的不是key=value值。傳遞的是字節(jié)碼.對(duì)于一個(gè)普通的表單來(lái)說(shuō)只要它是post類(lèi)型。默認(rèn)就是Content-type:application/x-www-from-urlencoded表現(xiàn)形式1:在request的請(qǐng)求頭中出現(xiàn)。2:在form聲明時(shí)設(shè)置一個(gè)類(lèi)型enctyp
2、e="application/x-www-form-urlencoded";如果要實(shí)現(xiàn)文件上傳,必須設(shè)置enctype=“multipart/form-data”設(shè)置表單類(lèi)型。表單與請(qǐng)求的對(duì)應(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;/***如果一個(gè)表單的類(lèi)型是post且enctype為multipart/form-date*則所有數(shù)據(jù)都是以二進(jìn)制的方式向服務(wù)器上傳遞。*所
4、以req.getParameter("xxx")永遠(yuǎn)為null。一定要注意。*只可以通過(guò)req.getInputStream()來(lái)獲取數(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();讀取分隔行。//讀取第一行,且第一行是分隔符號(hào)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)??蚣埽菏侵笇⒂脩?hù)經(jīng)常處理的業(yè)務(wù)進(jìn)行一個(gè)代碼封裝。讓用戶(hù)可以方便的調(diào)用。目前文件上傳的(框架)組件:Apache----fi