part.write java_小白向:web中利用request.getPart()上传文件到服务器
被文件上傳弄得焦頭爛額的一天,果然web中的路徑和各種設置真的好討厭=?=
下面是超級小白的、及其簡約的“詳”解
1、明確目的:
用戶將 1.txt 文件 上傳到 服務器(web工程下的某個文件夾)中
2、明確過程
文件上傳的過程涉及兩個文件, 一個 .jsp文件,和 一個 servlet 文件。
.jsp文件(upload.jsp):用戶操作頁面 =顯示文件名的文本框+文件選擇按鈕(瀏覽...)+確認上傳按鈕
servlet文件(uploadServlet.java):根據.jsp中選擇的文件,處理文件上傳
3、開始敲代碼(掀桌!)
.jsp文件
文件上傳 //關鍵句1| 文件名: | |
.jsp中的關鍵語句:
關鍵句1:
? ??//form中的數據用二進制數據傳輸,可以傳文字,圖片,。。關鍵句2:?? ?//type 設成“file”就是文件選擇按鈕,自動產生一個 文本框+選擇按鈕
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代表一個文件String h= part.getHeader("content-disposition");//h是要上傳的文件的頭:具體如下(上傳桌面上的account.txt文件)//form-data; name="fileName"; filename="C:\Users\ASUS\Desktop\account.txt"//把傳上來的account.txt文件命名為"newFile"保存在服務器中
String fname = "newFile";//substring是在獲取文件的后綴,改名但是不改后綴
fname = fname + h.substring(h.lastIndexOf("."), h.length() - 1);//按照路徑上傳文件(修改path可以改變文件在服務器中的存儲位置)
part.write(path + "\\" +fname);//提示上傳成功
PrintWriter out =response.getWriter();
out.println("
");out.println("
上傳文件");out.println("
");out.println("
上傳成功!
");out.println("");
}
}
總結
我覺得最關鍵的語句是?Part part= request.getPart("fileName");?我把Part接口理解為文件本身,part.write(path + "\\" +fname);就理解為把part按照括號中的路徑寫進去,這里的路徑是包含文件名稱的,相當于一個盒子,part則是盒子中實際的文件內容。
獲得文件后綴的方法值得注意。
總結
以上是生活随笔為你收集整理的part.write java_小白向:web中利用request.getPart()上传文件到服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 5.5 barracuda_
- 下一篇: JAVA经过两轮面试还能被刷吗_云从科技