這篇文章運用簡單易懂的例子給大家介紹如何使用Javaweb中的getPart 接收表單文件,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
成都創(chuàng)新互聯(lián)公司專注于廊坊網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供廊坊營銷型網(wǎng)站建設(shè),廊坊網(wǎng)站制作、廊坊網(wǎng)頁設(shè)計、廊坊網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)公司服務(wù),打造廊坊網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供廊坊網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
使用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ù)器
2、點擊添加額外的web資源
3、將本地存儲上傳文件的文件夾添加進來即可!
一定要ctrl + S
IDEA:
優(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"); //判斷用戶是否選擇文件,如果沒有選擇頭像,不進行后續(xù)操作 if (part.getSize() == 0) { request.setAttribute("msg", "請選擇用戶頭像"); request.getRequestDispatcher("/register.jsp").forward(request, response); return; } String photo = UploadUtils.upload(part, request, response); //判斷photo是否為空字符串,為空字符串,說明不是圖片類型,也不進行后續(xù)操作 if (photo == "") { request.setAttribute("msg", "請選擇圖片類型的文件,如png,jpg,jpeg"); request.getRequestDispatcher("/register.jsp").forward(request, response); return; } //不是空字符串,執(zhí)行后續(xù)操作,如將路徑存儲到數(shù)據(jù)庫等 ............................................ }
關(guān)于如何使用Javaweb中的getPart 接收表單文件就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
網(wǎng)站名稱:如何使用Javaweb中的getPart接收表單文件
文章地址:http://jinyejixie.com/article24/jjioce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計公司、網(wǎng)站維護、網(wǎng)站收錄、品牌網(wǎng)站制作、定制網(wǎng)站、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)