日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Javaweb如何使用getPart接收表單文件?

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

漣源網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)成立于2013年到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

前臺 : form.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


  Title


請選擇文件:

后臺: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ù)庫等
  ............................................
}

推薦教程:《Java教程》
本文名稱:Javaweb如何使用getPart接收表單文件?
網(wǎng)站鏈接:http://www.dlmjj.cn/article/chdeoc.html