Servlet3文件上传

文件上传:MultipartConfig 

https://github.com/antonio2306/joy-demo/blob/master/src/main/java/cn/joy/demo/external/upload/Servlet3FileUpload.java

 form的enctype 标签:http://www.w3school.com.cn/tags/att_form_enctype.asp

配合多线程。

jsp代码:

复制代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    
    <!-- enctype="multipart/form-data":不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。 -->
    <form action="/JSPweb/FileUploadServlet" method="post" enctype="multipart/form-data" >
        <input type="text" name="text" value="textTest" />
        <input type="file" name="fileToUpload" /><br />
        <input type="submit" value="上传" /> 
    </form>
</body>
</html>
复制代码

 

servlet代码:

复制代码
@WebServlet("/FileUploadServlet")
// servlet3新特性,通过添加注释上传文件
@MultipartConfig
public class FileUploadServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public FileUploadServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,
            IOException {
        doPost(request,response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
            IOException {

        String string = request.getParameter("text");
        System.out.println(string);

        Part part = request.getPart("fileToUpload");
        if (part == null) {
            System.out.println(this.toString() + "part is null");
        }
        String mime = part.getContentType();
        String ext = "";
        if ("image/jpeg".equals(mime)) {
            ext = ".jpg";
        } else {
            response.getWriter().println("您上传的文件类型不合法");
            return;
        }
        String filleName = UUID.randomUUID().toString();
        String path = getServletContext().getRealPath("/upload");
        File dir = new File(path);
        if (!dir.exists()) {
            dir.mkdirs();
        }
        File file = new File(dir, filleName + ext);
        part.write(file.getPath());
    }

}
复制代码

 

posted @   pepelu  阅读(367)  评论(0编辑  收藏  举报
编辑推荐:
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· .NET 进程 stackoverflow异常后,还可以接收 TCP 连接请求吗?
· SQL Server统计信息更新会被阻塞或引起会话阻塞吗?
· C# 深度学习框架 TorchSharp 原生训练模型和图像识别
阅读排行:
· 这或许是全网最全的 DeepSeek 使用指南,95% 的人都不知道的使用技巧(建议收藏)
· 拒绝繁忙!免费使用 deepseek-r1:671B 参数满血模型
· 本地搭建DeepSeek和知识库 Dify做智能体Agent(推荐)
· Sdcb Chats 重磅更新:深度集成 DeepSeek-R1,思维链让 AI 更透明!
· DeepSeek-R1本地部署如何选择适合你的版本?看这里
点击右上角即可分享
微信分享提示