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教程》
Atas ialah kandungan terperinci Javaweb 如何使用 getPart 接收表单文件?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



1. Asas Keselamatan JavaWeb 1. Apakah itu pengauditan kod? Dalam istilah awam, pengauditan kod Java adalah untuk menemui isu keselamatan dalam aplikasi Java itu sendiri dengan mengaudit kod Java Memandangkan Java itu sendiri adalah bahasa yang disusun, walaupun hanya terdapat fail kelas Kami masih boleh mengaudit kod Java. Untuk fail kod sumber Java yang tidak dikompilasi, kita boleh membaca kod sumber secara langsung, tetapi untuk fail kelas atau jar yang dikompilasi, kita perlu menyahkompilasinya. Pengauditan kod Java itu sendiri tidak begitu sukar selagi anda mahir dalam proses pengauditan dan teknik pengauditan kerentanan biasa, anda boleh menyelesaikan kerja pengauditan kod dengan mudah. Tetapi cara pengauditan kod Java bukan hanya untuk digunakan

rx merujuk kepada penerimaan, yang sepadan dengan TX (merujuk kepada output adalah unit transceiver dalam komunikasi, dan TX dan RX adalah dua bahagian TRX mereka muncul secara berpasangan dalam gentian optik, dan transceiver dan transceiver adalah pasangan , dan transceiver dan transceiver mestilah pada masa yang sama Jika anda hanya menerima tetapi tidak menghantar, terdapat masalah jika anda hanya menghantar tetapi tidak menerima.

虚拟号码接收验证码的方法:首先进入易码验证码接收平台;然后注册网站会员;接着打开短信验证码服务,并选择运营商;最后获取虚拟手机号,并到要发送验证码的平台,把手机号填上去,选择【发送验证码】即可。

Javaweb ialah rangka kerja teknologi untuk membangunkan aplikasi web yang menggabungkan bahasa pengaturcaraan Java dengan teknologi pembangunan web untuk menyediakan cara yang cekap, selamat dan boleh dipercayai untuk membina dan menggunakan aplikasi web. Ia mempunyai fungsi yang berkuasa, fleksibiliti dan sifat merentas platform, dan digunakan secara meluas dalam tapak web dan sistem peringkat perusahaan dari semua saiz.

Ringkasan kaedah untuk melaksanakan fungsi menghantar dan menerima e-mel menggunakan fungsi e-mel PHP Dengan populariti Internet, e-mel telah menjadi salah satu alat komunikasi yang sangat diperlukan dalam kehidupan seharian manusia. Dalam pembangunan laman web, selalunya perlu untuk melaksanakan fungsi menghantar dan menerima e-mel. Sebagai bahasa skrip sebelah pelayan yang biasa digunakan, PHP menyediakan satu siri fungsi e-mel berkuasa yang boleh menghantar dan menerima e-mel dengan mudah. Fungsi penghantaran mel PHP menyediakan fungsi mel() untuk melaksanakan fungsi penghantaran mel. Yang berikut dihantar menggunakan fungsi mel().

EMS-Sistem Pengurusan Maklumat Pekerja MySQL pembelajaran asas ringkasan amali perintah asas membuat ems library showdatabases createtableusers; 'zs',3000,20);insertintuser

Menghantar dan menerima e-mel - Mengintegrasikan fungsi e-mel dalam aplikasi web Dengan populariti Internet, e-mel telah menjadi bahagian yang amat diperlukan dalam kehidupan dan pekerjaan orang ramai. Dengan pembangunan aplikasi Web, menyepadukan fungsi e-mel ke dalam aplikasi Web telah menjadi keperluan yang semakin popular. Artikel ini akan memperkenalkan cara melaksanakan fungsi penghantaran dan penerimaan e-mel dalam aplikasi web. Bahagian 1: Penyepaduan fungsi penghantaran e-mel Untuk melaksanakan fungsi penghantaran e-mel, anda perlu mempertimbangkan langkah-langkah berikut: Untuk menyediakan pelayan e-mel untuk menghantar e-mel dalam aplikasi web, anda perlu terlebih dahulu

Cara menangani isu penghantaran dan penerimaan e-mel dalam pembangunan PHP Dalam pembangunan aplikasi web, penghantaran e-mel adalah satu fungsi yang sangat penting, terutamanya dalam proses berinteraksi dengan pengguna dan menghantar maklumat. PHP, sebagai bahasa skrip sebelah pelayan yang popular, memberikan kami pelbagai fungsi dan penyelesaian untuk memproses e-mel. Artikel ini akan memperkenalkan cara mengendalikan isu penghantaran dan penerimaan e-mel dalam pembangunan PHP. Menghantar e-mel 1. Gunakan pelayan SMTP untuk menghantar e-mel SMTP (Simple Mail Transfer Protocol) ialah standard untuk menghantar e-mel.
