站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

Javaweb 如何使用 getPart 接收表單文件?

Javaweb 如何使用 getPart 接收表單文件?

使用getPart接收表單文件時,注意Tomcat版本要在8之上。

前臺 : form.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head>   <title>Title</title> </head> <body> <form action="${pageContext.request.contextPath}/test" method="post" enctype="multipart/form-data">   請選擇文件:<input type="file" name="file"><br>   <input type="submit" value="提交"> </form> </body> </html>

后臺:TestServlet

@WebServlet(name = "TestServlet", urlPatterns = "/test") @MultipartConfig public class TestServlet extends HttpServlet {   protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {     //獲取文件,參數(shù)為前臺的name     Part part = request.getPart("photo");     	//判斷是否選擇了文件     if (part.getSize() == 0) {       request.setAttribute("msg", "請選擇用戶頭像");       request.getRequestDispatcher("/register.jsp").forward(request, response);       return;	//不再執(zhí)行后續(xù)操作     }     //獲取文件名,獲取到文件名的格式如:a.jpg     String fileName = part.getSubmittedFileName();     /**      截取文件名的后綴名:      photo.lastIndexOf('.')的返回值為"."的位置,加1表示后綴名的起始位置。      photo.substring(photo.lastIndexOf('.')+1),表示從后綴名的起始位置截取到結(jié)束位置。      * */     String fileType = fileName.substring(fileName.lastIndexOf('.') + 1);     //判斷該文件是不是圖片格式     if (!("jpg".equalsIgnoreCase(fileType) || "jpeg".equalsIgnoreCase(fileType) || "png".equalsIgnoreCase(fileType))) {       //不是圖片格式,停止下一步,并將信息反饋給前臺頁面       request.setAttribute("msg","上傳的文件必須為圖片");       request.getRequestDispatcher("/form.jsp").forward(request, response);       return;     }     //是圖片類型,構(gòu)建一個上傳圖片的存儲路徑     String path = "E:\upload";     File file = new File(path);     if (!file.exists()) {       file.mkdirs(); //創(chuàng)建文件和文件夾     }     //將part內(nèi)容寫到文件夾內(nèi),生成一個文件     part.write(path + "/" + fileName);   } }

String path = "E:\testPic";設(shè)置成本地文件夾路徑與Tomcat服務(wù)器脫離關(guān)聯(lián),可以防止文件丟失。但需要將該文件夾掛載到Tomcat服務(wù)器。

掛載方式:Eclipse:

1、雙擊集成在Eclipse中的tomcat服務(wù)器

Javaweb 如何使用 getPart 接收表單文件?

2、點擊添加額外的web資源

Javaweb 如何使用 getPart 接收表單文件?

3、將本地存儲上傳文件的文件夾添加進(jìn)來即可!

Javaweb 如何使用 getPart 接收表單文件?

一定要ctrl + S

IDEA:

Javaweb 如何使用 getPart 接收表單文件?

Javaweb 如何使用 getPart 接收表單文件?

優(yōu)化:將上傳圖片封裝成工具類

UploadUtils.java

public class UploadUtils {   public static String upload(Part part, HttpServletRequest request, HttpServletResponse response) {     //獲取文件的名稱     String photo = part.getSubmittedFileName();     //重命名該文件,防止出現(xiàn)重名文件被覆蓋的情況     photo = UUID.randomUUID() + photo;     /**      截取文件名的后綴名:      photo.lastIndexOf('.')的返回值為"."的位置,加1表示后綴名的起始位置。      photo.substring(photo.lastIndexOf('.')+1),表示從后綴名的起始位置截取到結(jié)束位置。      * */     String fileType = photo.substring(photo.lastIndexOf('.') + 1);     //判斷該文件是不是圖片格式     if (!("jpg".equalsIgnoreCase(fileType) || "jpeg".equalsIgnoreCase(fileType) || "png".equalsIgnoreCase(fileType))) {       //不是圖片格式,返回空字串       return "";     }     //是圖片類型,構(gòu)建一個上傳圖片的存儲路徑,并返回字符串的名稱,用于存儲到數(shù)據(jù)庫     String path = "E:\upload";     File file = new File(path);     if (!file.exists()) {       file.mkdirs(); //創(chuàng)建文件和文件夾     }     //將part內(nèi)容寫到文件夾內(nèi),生成一個文件     try {       part.write(path + "/" + photo);     } catch (IOException e) {       e.printStackTrace();     }     return photo;   } }

調(diào)用工具類:

@WebServlet(name = "TestServlet", urlPatterns = "/test") @MultipartConfig public class TestServlet extends HttpServlet {   protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{   //獲取文件   Part part = request.getPart("photo");   //判斷用戶是否選擇文件,如果沒有選擇頭像,不進(jìn)行后續(xù)操作   if (part.getSize() == 0) {     request.setAttribute("msg", "請選擇用戶頭像");     request.getRequestDispatcher("/register.jsp").forward(request, response);     return;   }   String photo = UploadUtils.upload(part, request, response);   //判斷photo是否為空字符串,為空字符串,說明不是圖片類型,也不進(jìn)行后續(xù)操作   if (photo == "") {     request.setAttribute("msg", "請選擇圖片類型的文件,如png,jpg,jpeg");     request.getRequestDispatcher("/register.jsp").forward(request, response);     return;   }   //不是空字符串,執(zhí)行后續(xù)操作,如將路徑存儲到數(shù)據(jù)庫等   ............................................ }

推薦教程:《Java教程》

贊(0)
分享到: 更多 (0)
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
91情侣在线精品国产免费| 91精品国产91久久久久青草| 午夜精品久久影院蜜桃| 国产精品免费一级在线观看| 亚洲AV无码精品国产成人 | 好吊操这里只有精品| 精品国产一区二区三区久久久狼| 无码国产精品一区二区免费模式| 国产一区二区精品| 日韩精品无码人成视频手机 | 亚洲欧洲国产精品你懂的| 国内精品免费视频精选在线观看| 91久久精品91久久性色| 久久精品无码一区二区app| 国产91精品一区二区麻豆亚洲| 日韩免费观看的一级毛片| 日韩精品久久久肉伦网站| 中日韩国语视频在线观看| 国产91精品新入口| 国产成人精品免费视频软件| 在线91精品亚洲网站精品成人| 东京热一精品无码AV| 国产精品1000夫妇激情啪发布| 十八禁无遮挡99精品国产| 午夜精品久久久久久久99蜜桃| 亚洲精品精华液一区二区| 国产成人精品久久久久| 精品无码成人久久久久久| 精品久久久久久久99热| 国产精品无码素人福利免费| 国产精品视_精品国产免费| 国产精品亚洲а∨无码播放麻豆| 国产精品极品美女自在线观看| 国产乱码精品一区三上| 日韩欧精品无码视频无删节| 日韩毛片基地一区二区三区| 日韩加勒比一本无码精品| 福利姬在线精品观看 | 国产精品一区二区久久精品| 97精品一区二区视频在线观看| 国产精品永久在线|