part.write java_小白向:web中利用request.getPart()上传文件到服务器
被文件上傳弄得焦頭爛額的一天,果然web中的路徑和各種設(shè)置真的好討厭=?=
下面是超級(jí)小白的、及其簡(jiǎn)約的“詳”解
1、明確目的:
用戶(hù)將 1.txt 文件 上傳到 服務(wù)器(web工程下的某個(gè)文件夾)中
2、明確過(guò)程
文件上傳的過(guò)程涉及兩個(gè)文件, 一個(gè) .jsp文件,和 一個(gè) servlet 文件。
.jsp文件(upload.jsp):用戶(hù)操作頁(yè)面 =顯示文件名的文本框+文件選擇按鈕(瀏覽...)+確認(rèn)上傳按鈕
servlet文件(uploadServlet.java):根據(jù).jsp中選擇的文件,處理文件上傳
3、開(kāi)始敲代碼(掀桌!)
.jsp文件
文件上傳 //關(guān)鍵句1| 文件名: | |
.jsp中的關(guān)鍵語(yǔ)句:
關(guān)鍵句1:
? ??//form中的數(shù)據(jù)用二進(jìn)制數(shù)據(jù)傳輸,可以傳文字,圖片,。。關(guān)鍵句2:?? ?//type 設(shè)成“file”就是文件選擇按鈕,自動(dòng)產(chǎn)生一個(gè) 文本框+選擇按鈕
servlet文件:
importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileWriter;importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet.annotation.MultipartConfig;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.Part;
@WebServlet(name= "UploadServlet", urlPatterns = { "/upload.do"})public class UploadServlet extendsHttpServlet {private static final long serialVersionUID = 1L;publicUploadServlet() {super();
}protected voiddoPost(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
String path= this.getServletContext().getRealPath("/");//path為工程根目錄:(web工程名為test)//D:\tomcat\apache-tomcat-8.0.50-windows-x64\apache-tomcat-8.0.50\webapps\test\
Part part= request.getPart("fileName");//part代表一個(gè)文件String h= part.getHeader("content-disposition");//h是要上傳的文件的頭:具體如下(上傳桌面上的account.txt文件)//form-data; name="fileName"; filename="C:\Users\ASUS\Desktop\account.txt"//把傳上來(lái)的account.txt文件命名為"newFile"保存在服務(wù)器中
String fname = "newFile";//substring是在獲取文件的后綴,改名但是不改后綴
fname = fname + h.substring(h.lastIndexOf("."), h.length() - 1);//按照路徑上傳文件(修改path可以改變文件在服務(wù)器中的存儲(chǔ)位置)
part.write(path + "\\" +fname);//提示上傳成功
PrintWriter out =response.getWriter();
out.println("
");out.println("
上傳文件");out.println("
");out.println("
上傳成功!
");out.println("");
}
}
總結(jié)
我覺(jué)得最關(guān)鍵的語(yǔ)句是?Part part= request.getPart("fileName");?我把Part接口理解為文件本身,part.write(path + "\\" +fname);就理解為把part按照括號(hào)中的路徑寫(xiě)進(jìn)去,這里的路徑是包含文件名稱(chēng)的,相當(dāng)于一個(gè)盒子,part則是盒子中實(shí)際的文件內(nèi)容。
獲得文件后綴的方法值得注意。
總結(jié)
以上是生活随笔為你收集整理的part.write java_小白向:web中利用request.getPart()上传文件到服务器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql 5.5 barracuda_
- 下一篇: JAVA经过两轮面试还能被刷吗_云从科技