15-jsp上传文件
前端代码
----------------------
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>上传文件</title>
</head>
<body>
<!--表单提交类型 post
表单类型 enctype="multipart/form-data"
表单元素类型 文件域设置name 属性值
-->
<form action="uploadFile" method="post" enctype="multipart/form-data">
姓名:<input type="text" name="uname"/> <br/>
文件:<input type="file" name="myfile" /> <br/>
<!-- button 默认的类型是 type="submit" -->
<button>提交</button>
</form>
</body>
</html>
--------------------
后端代码
package yu.upload;
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("/uploadFile")
@MultipartConfig // 支持文件上传的注解,必须要加注解
public class uploadFile extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("上传文件------");
// 设置编码 格式
request.setCharacterEncoding("UTF-8");
// 获取 表单的输入框内容
String uname = request.getParameter("uname");
System.out.println("uname--"+ uname);
//开始接受文件
// 获取Part对象 (Servlet 将 multipart.form-data 的 post 请求封装成 Part对象)
Part part = request.getPart("myfile"); // 表单中file文件域的name 属性值
// 通过 Part 对象得到上传文件的文件名
String fileName = part.getSubmittedFileName();
System.out.println("上传的文件名--"+fileName);
// 得到文件的存放路径
String filePath = request.getServletContext().getRealPath("/");
System.out.println("文件的存放路径" + filePath);
// 上传文件到指定路径
part.write(filePath+"/"+fileName);
}
}