91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-07-23 09:40:45 來源:億速云 閱讀:324 作者:Leah 欄目:編程語言

這篇文章運用簡單易懂的例子給大家介紹如何使用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服務器

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

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

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

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

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

一定要ctrl + S

IDEA:

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

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

優化:將上傳圖片封裝成工具類

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;
  }
  //不是空字符串,執行后續操作,如將路徑存儲到數據庫等
  ............................................
}

關于如何使用Javaweb中的getPart 接收表單文件就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乌兰浩特市| 栾城县| 乾安县| 通道| 育儿| 白河县| 桂林市| 泸水县| 纳雍县| 怀宁县| 江都市| 都兰县| 桓台县| 若羌县| 南陵县| 嘉峪关市| 高雄市| 麻江县| 顺义区| 大丰市| 博野县| 红安县| 永清县| 邓州市| 壤塘县| 东丰县| 明星| 芜湖县| 思茅市| 丽江市| 来宾市| 郑州市| 仙居县| 隆林| 东兴市| 内黄县| 万全县| 祁东县| 布尔津县| 镇雄县| 焉耆|