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 { //获取文件,参数为前台的name Part part = request.getPart("photo"); //判断是否选择了文件 if (part.getSize() == 0) { request.setAttribute("msg", "请选择用户头像"); request.getRequestDispatcher("/register.jsp").forward(request, response); return; //不再执行后续操作 } //获取文件名,获取到文件名的格式如:a.jpg String fileName = part.getSubmittedFileName(); /** 截取文件名的后缀名: photo.lastIndexOf('.')的返回值为"."的位置,加1表示后缀名的起始位置。 photo.substring(photo.lastIndexOf('.')+1),表示从后缀名的起始位置截取到结束位置。 * */ 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; } //是图片类型,构建一个上传图片的存储路径 String path = "E:\\upload"; File file = new File(path); if (!file.exists()) { file.mkdirs(); //创建文件和文件夹 } //将part内容写到文件夹内,生成一个文件 part.write(path + "/" + fileName); } }
String path = "E:\\testPic";设置成本地文件夹路径与Tomcat服务器脱离关联,可以防止文件丢失。但需要将该文件夹挂载到Tomcat服务器。
挂载方式:Eclipse:
1、双击集成在Eclipse中的tomcat服务器
2、点击添加额外的web资源
3、将本地存储上传文件的文件夹添加进来即可!
一定要ctrl + S
IDEA:
优化:将上传图片封装成工具类
UploadUtils.java
public class UploadUtils { public static String upload(Part part, HttpServletRequest request, HttpServletResponse response) { //获取文件的名称 String photo = part.getSubmittedFileName(); //重命名该文件,防止出现重名文件被覆盖的情况 photo = UUID.randomUUID() + photo; /** 截取文件名的后缀名: photo.lastIndexOf('.')的返回值为"."的位置,加1表示后缀名的起始位置。 photo.substring(photo.lastIndexOf('.')+1),表示从后缀名的起始位置截取到结束位置。 * */ String fileType = photo.substring(photo.lastIndexOf('.') + 1); //判断该文件是不是图片格式 if (!("jpg".equalsIgnoreCase(fileType) || "jpeg".equalsIgnoreCase(fileType) || "png".equalsIgnoreCase(fileType))) { //不是图片格式,返回空字串 return ""; } //是图片类型,构建一个上传图片的存储路径,并返回字符串的名称,用于存储到数据库 String path = "E:\\upload"; File file = new File(path); if (!file.exists()) { file.mkdirs(); //创建文件和文件夹 } //将part内容写到文件夹内,生成一个文件 try { part.write(path + "/" + photo); } catch (IOException e) { e.printStackTrace(); } return photo; } }
调用工具类:
@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"); //判断用户是否选择文件,如果没有选择头像,不进行后续操作 if (part.getSize() == 0) { request.setAttribute("msg", "请选择用户头像"); request.getRequestDispatcher("/register.jsp").forward(request, response); return; } String photo = UploadUtils.upload(part, request, response); //判断photo是否为空字符串,为空字符串,说明不是图片类型,也不进行后续操作 if (photo == "") { request.setAttribute("msg", "请选择图片类型的文件,如png,jpg,jpeg"); request.getRequestDispatcher("/register.jsp").forward(request, response); return; } //不是空字符串,执行后续操作,如将路径存储到数据库等 ............................................ }
推荐教程:《Java教程》
以上是Javaweb 如何使用 getPart 接收表單檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

一、JavaWeb安全基礎1.何為程式碼審計?通俗的說Java程式碼審計就是透過審計Java程式碼來發現Java應用程式本身中存在的安全性問題,由於Java本身是編譯型語言,所以即使只有class檔案的情況下我們依然可以對Java程式碼進行審計。對於未編譯的Java原始碼檔案我們可以直接閱讀其原始碼,而對於已編譯的class或jar檔我們就需要進行反編譯了。 Java程式碼審計其本身並無多大難度,只要熟練審計流程和常見的漏洞審計技巧就可比較輕鬆的完成程式碼審計工作了。但是Java代碼審計的方式絕對不僅僅是使

rx是指接收,與TX(指輸出)相對應;TRX在通訊裡面是收發單元,而TX和RX,就是TRX的兩個部分;光纖中是成對出現的,收發是一對,收發必須同時,如果只收不發,只發不收都是有問題的。

虛擬號碼接收驗證碼的方法:先進入易碼驗證碼接收平台;然後註冊網站會員;接著打開短信驗證碼服務,並選擇運營商;最後獲取虛擬手機號,並到要發送驗證碼的平台,把手機號填上去,選擇【發送驗證碼】即可。

Javaweb是一種用於開發web應用程式的技術框架,它將Java程式語言與Web開發技術相結合,提供了高效、安全和可靠的方式來建立和部署網路應用程式。它具有強大的功能、靈活性和跨平台性,被廣泛應用於各種規模的網站和企業級系統。

EMS-員工資訊管理系統MySQL學習之基礎操作總結MySQL學習之基礎指令實作總結建立ems庫showdatabases;createdatabaseems;useems;建立user表createtableuser(idintprimarykeyauto_increment,namevarchar(50),salarydouble,ageint);插入表格資料版(1,'zs',3000,20);insertintouser

郵件發送與接收--在網路應用程式中整合郵件功能隨著網路的普及,電子郵件已成為人們生活與工作中不可或缺的一部分。隨著Web應用的發展,將郵件功能整合到網路應用中成為一個越來越受歡迎的需求。本文將介紹如何在Web應用中實現郵件的傳送與接收功能。第一部分:郵件傳送功能的整合實作郵件傳送功能,需考慮以下幾個步驟:郵件伺服器設定在Web應用程式中發送郵件,首先需

利用PHP郵件函數實現郵件發送和接收功能的方法總結隨著互聯網的普及,電子郵件成為了人們日常生活中必不可少的溝通工具之一。而在網站開發中,也常常需要實現郵件發送和接收的功能。 PHP作為一種常用的伺服器端腳本語言,提供了一系列強大的郵件函數,可以輕鬆實現郵件的發送和接收。郵件發送功能PHP提供了mail()函數來實現郵件的發送功能。以下是使用mail()函數發

如何處理PHP開發中的郵件發送和接收問題在Web應用程式開發中,郵件傳輸是一項非常重要的功能,特別是在與使用者互動和訊息傳遞的過程中。 PHP作為一種流行的伺服器端腳本語言,為我們提供了各種處理電子郵件的功能和解決方案。本文將介紹如何在PHP開發中處理郵件發送和接收問題。郵件發送一、使用SMTP伺服器傳送郵件SMTP(簡單郵件傳輸協定)是用來傳送電子郵件的標
