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 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











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

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

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

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

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

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

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