Servlet3文件上传
文件上传:MultipartConfig
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()); } }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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本地部署如何选择适合你的版本?看这里