1.创建upload.html文件为了提交上传表单
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文件上传</title>
</head>
<body>
<!--
文件上传
1.准备表单
2.设置表单的提交类型为post请求 method="post"
3.设置表单类型为文件上传表单 enctype="multipart/form-data"
4.设置文件提交的地址
5.准备表单元素
1.普通的表单项 type="text"
2.文件项 type="file"
6.设置表单元素的name属性值(表单提交一定要设置表单元素的name属性值,否则后台无法接收数据!)
-->
<form method="post" enctype="multipart/form-data" action="uploadServlet">
姓名:<input type="text" name="uname"><br>
文件:<input type="file" name="myfile"><br>
<button>提交</button>
</form>
</body>
</html>
2.创建一个Java类,名称为uploadServlet,继承HttpServlet类,重写service方法
package servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import java.io.IOException;
@WebServlet("/uploadServlet") //路径
@MultipartConfig //如果是文件上传,必须加此注解
public class uploadServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("文件上传...");
//设置请求编码格式
req.setCharacterEncoding("UTF-8");
String name = req.getParameter("uname");
System.out.println("uname:"+name);
//获取part对象
Part part = req.getPart("myfile");
//通过Part对象得到上传的文件名
String filename = part.getSubmittedFileName();
System.out.println("上传的文件名:"+filename);
//得到文件存放的路径
String filepath = req.getServletContext().getRealPath("/");
System.out.println("文件存放的路径:"+filepath);
//上传文件到指定目录
part.write(filepath+"/"+filename);
}
}
3.启动tomcat服务器,打开第一个创建的网页upload.html
4.输入姓名,点击选择文件按钮,随便上传个文档文件,点击提交
5.我们启动idea查看控制台,结果如图所示
文件上传成功!可以打开文件存放的路径自行查看