注意事项
1.HTML form表单 method = "post" 因为get 有大小限制
2.必须添加 enctype="multipart/form-data"
3.servlet必须添加注释@MultipartConfig
HTML文本
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="/day13/up" enctype="multipart/form-data" method="post">
<input type="file" name="filename">
<input type="submit" value="提交">
</form>
</body>
</html>
java servlet代码
package com.lmlm.file;
import java.io.File;
import java.io.IOException;
import java.util.UUID;
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;
@WebServlet("/up")
@MultipartConfig
public class UpFile extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 获取上传资源
Part part = req.getPart("filename");
// 获取上传文件名
String submittedFileName = part.getSubmittedFileName();
// 重命名文件
submittedFileName = UUID.randomUUID().toString()+submittedFileName;
// 创建保存文件的文件夹
File file = new File("E:/up");
// 判断文件是否存在不存在创建
if(!file.exists()) {
file.mkdir();
}
// 生成保存文件的新的路径
String path=file+"/"+submittedFileName;
// 将文件保存到生成的路径中
part.write(path);
}
}