ホームページ Java &#&ベース Javaweb は getPart をどのように使用してフォーム ファイルを受信しますか?

Javaweb は getPart をどのように使用してフォーム ファイルを受信しますか?

Jul 22, 2020 pm 05:45 PM
javaweb 引き継ぐ

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(&#39;.&#39;)的返回值为"."的位置,加1表示后缀名的起始位置。
     photo.substring(photo.lastIndexOf(&#39;.&#39;)+1),表示从后缀名的起始位置截取到结束位置。
     * */
    String fileType = fileName.substring(fileName.lastIndexOf(&#39;.&#39;) + 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(&#39;.&#39;)的返回值为"."的位置,加1表示后缀名的起始位置。
     photo.substring(photo.lastIndexOf(&#39;.&#39;)+1),表示从后缀名的起始位置截取到结束位置。
     * */
    String fileType = photo.substring(photo.lastIndexOf(&#39;.&#39;) + 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 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Java Web セキュリティのコード監査を分析する方法 Java Web セキュリティのコード監査を分析する方法 May 16, 2023 am 08:04 AM

1. JavaWeb セキュリティの基礎 1. コード監査とは? 平たく言えば、Java コード監査とは、Java コードを監査することで Java アプリケーション自体のセキュリティ上の問題を発見することです Java 自体はコンパイル言語であるため、たとえクラス ファイルしかなくても、 Java コードを引き続き監査できます。コンパイルされていない Java ソース コード ファイルの場合は、ソース コードを直接読み取ることができますが、コンパイルされたクラス ファイルまたは jar ファイルの場合は、逆コンパイルする必要があります。 Java コードの監査自体はそれほど難しいものではなく、監査プロセスと一般的な脆弱性監査手法に習熟していれば、比較的簡単にコード監査作業を完了できます。しかし、Java コード監査の方法は単に使用するだけではありません。

rx は受信中ですか、それとも送信中ですか? rx は受信中ですか、それとも送信中ですか? Feb 20, 2023 pm 02:53 PM

rx は受信を指し、TX (出力を指す) に対応します。TRX は通信におけるトランシーバ ユニットであり、TX と RX は TRX の 2 つの部分です。これらは光ファイバ内でペアで表示され、トランシーバとトランシーバはペアです、トランシーバーとトランシーバーは同時になければなりません、受信だけで送信しない場合、送信だけで受信しない場合は問題があります。

仮想番号で認証コードを受け取る方法 仮想番号で認証コードを受け取る方法 Oct 31, 2019 pm 04:52 PM

仮想番号で認証コードを受信する方法:最初にYima認証コード受信プラットフォームに入り、次にWebサイトのメンバーとして登録し、次にSMS認証コードサービスを開いてオペレーターを選択し、最後に仮想携帯電話番号を取得して、認証コードを送信するプラットフォームを選択し、携帯電話番号を入力して[認証コードを送信する]を選択してください。

JavaWebとは何ですか JavaWebとは何ですか Aug 09, 2023 am 11:50 AM

Javaweb は、Web アプリケーションを開発するためのテクノロジ フレームワークであり、Java プログラミング言語と Web 開発テクノロジを組み合わせて、Web アプリケーションを構築およびデプロイするための効率的、安全かつ信頼性の高い方法を提供します。強力な機能、柔軟性、クロスプラットフォームの性質を備えており、あらゆる規模の Web サイトやエンタープライズレベルのシステムで広く使用されています。

JavaWeb を使用して mysql データベース データを表示する方法 JavaWeb を使用して mysql データベース データを表示する方法 Jun 01, 2023 am 09:49 AM

EMS-社員情報管理システム MySQL学習 基本操作まとめ MySQL学習 基本コマンド実践まとめ create emsデータベース showdatabases; createdatabaseems; useems; create user table createtableuser(idintprimarykeyauto_increment, namevarchar(50),サラリーダブル, ageint); insert table data insertintouservalues(1, 'zs',3000,20);ユーザーを挿入

PHPのメール機能を使ったメール送受信機能の実装方法まとめ PHPのメール機能を使ったメール送受信機能の実装方法まとめ Nov 20, 2023 pm 02:18 PM

PHPのメール機能を使ったメール送受信機能の実装方法まとめ インターネットの普及により、メールは人々の日常生活に欠かせないコミュニケーションツールの一つとなっています。 Webサイト開発ではメールの送受信機能の実装が必要になることがよくあります。一般的に使用されるサーバー側スクリプト言語として、PHP は電子メールを簡単に送受信できる一連の強力な電子メール機能を提供します。メール送信関数 PHPではメール送信機能を実現するmail()関数を提供しています。以下はmail()関数を使用して送信されます

電子メールの送受信 -- Web アプリケーションに電子メール機能を統合する 電子メールの送受信 -- Web アプリケーションに電子メール機能を統合する Sep 12, 2023 pm 06:12 PM

電子メールの送受信 - Web アプリケーションへの電子メール機能の統合 インターネットの普及により、電子メールは人々の生活や仕事に欠かせないものになりました。 Web アプリケーションの開発に伴い、電子メール機能を Web アプリケーションに統合することがますます一般的な要件になっています。この記事では、Webアプリケーションにメールの送受信機能を実装する方法を紹介します。パート 1: 電子メール送信機能の統合 電子メール送信機能を実装するには、次の手順を検討する必要があります。 Web アプリケーションで電子メールを送信するように電子メール サーバーを設定するには、まず次のことを行う必要があります。

PHP開発におけるメール送受信の問題の解決方法 PHP開発におけるメール送受信の問題の解決方法 Jun 30, 2023 pm 01:57 PM

PHP 開発におけるメール送受信の問題の対処方法 Web アプリケーション開発において、特にユーザーとの対話や情報伝達のプロセスにおいて、メール送信は非常に重要な機能です。 PHP は、人気のあるサーバーサイド スクリプト言語として、電子メールを処理するためのさまざまな機能とソリューションを提供します。この記事では、PHP開発におけるメール送受信の問題の対処方法を紹介します。電子メールの送信 1. SMTP サーバーを使用して電子メールを送信する SMTP (Simple Mail Transfer Protocol) は電子メール送信の標準です。

See all articles