jsp两种文件上传方式@MultipartConfig 注解方式及普通常规方式
下面两种上传方式均支持文字文件单选多选批量上传处理
jsp代码:
<form id="uploadForm" enctype="multipart/form-data"> 用户名称:<input type="text" name="userName"><br> 头像文件:<input type="file" id="myfile" name="myfile" multiple="true"><br> BlogURL: <input type="text" name="UserBlogUrl"><br> <input type="button" value="上传" onclick="doSubmit();"> </form>
servlet代码:
后台接收文件方式一,该方式需要@MultipartConfig注解 后台接收文件方式二,该方式无需@MultipartConfig注解 /** * 后台接收文件方式一,该方式需要@MultipartConfig注解 多文件用getParts,单个文件参考上面用getPart("myfile") myfile为file框name属性,支持单选或多选批量上传 */ request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("UTF-8"); String savePath = request.getServletContext().getRealPath("/myFiles"); Collection<Part> files = request.getParts(); for (Part part : files) { // System.out.println("文件类型:" + part.getContentType());// MIME类型 // System.out.println("文件大小:" + part.getSize());// 文件大小 字节 // System.out.println("SubmittedFileName:" + part.getSubmittedFileName()); // System.out.println("Name:" + part.getName()); part.write(savePath + "/" + part.getSubmittedFileName()); response.getWriter().print("文件上传成功!"); } /** * 后台接收文件方式二,该方式无需@MultipartConfig注解 支持单个或多选批量上传 */ request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("UTF-8"); String savePath = request.getServletContext().getRealPath("/myFiles"); DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); try { List<FileItem> items = upload.parseRequest(new ServletRequestContext(request)); for (FileItem item : items) { if (!item.isFormField()) { // System.out.println("savePath = " + savePath); // System.out.println(item.getName()); // System.out.println(item.getFieldName()); item.write(new File(savePath + "/" + item.getName())); } } } catch (Exception e) { e.printStackTrace(); }
本文来自博客园,作者:IT情深,转载请注明原文链接:https://www.cnblogs.com/wh445306/p/16751820.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?