news 2026/9/19 13:38:44

apache文件上传并获取参数获取text文本数据和上传

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
apache文件上传并获取参数获取text文本数据和上传

找了好久都只有文件上传的
都没有携带参数的
这个可以获取普通的文本和上传文件
导入两个依赖

<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version></dependency><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.1</version></dependency>
packagecom.flatly.servlet;importorg.apache.commons.fileupload.FileItem;importorg.apache.commons.fileupload.FileItemFactory;importorg.apache.commons.fileupload.disk.DiskFileItemFactory;importorg.apache.commons.fileupload.servlet.ServletFileUpload;importjavax.servlet.*;importjavax.servlet.http.*;importjavax.servlet.annotation.*;importjava.io.*;importjava.util.List;@WebServlet(name="UploadWork",value="/uploadwork")publicclassUploadWorkextendsHttpServlet{@OverrideprotectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{super.doGet(req,resp);}@OverrideprotectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{if(ServletFileUpload.isMultipartContent(req)){FileItemFactoryfileItemFactory=newDiskFileItemFactory();ServletFileUploadservletFileUpload=newServletFileUpload(fileItemFactory);servletFileUpload.setHeaderEncoding("utf-8");servletFileUpload.setFileSizeMax(1024*1024*100);try{List<FileItem>list=servletFileUpload.parseRequest(req);for(FileItemfileItem:list){if(fileItem.isFormField()){Stringid=fileItem.getString("UTF-8");}else{StringfileItemName=fileItem.getName();Stringsubname=fileItemName.substring(fileItemName.lastIndexOf("."),fileItemName.length());Stringfilename=java.util.UUID.randomUUID()+subname;StringrealPath=req.getServletContext().getRealPath("work");Filefile=newFile(realPath+"/"+filename);fileItem.write(file);}}}catch(Exceptione){e.printStackTrace();}}}}

这里上传至webapp下的work目录
前台

<form action="testServlet"method="post"enctype="multipart/form-data"><input type="text"name="username"><input type="file"name="photo"><input type="submit"></form>
packagecom.flatly.servlet;importorg.apache.commons.fileupload.FileItem;importorg.apache.commons.fileupload.FileItemFactory;importorg.apache.commons.fileupload.FileUploadException;importorg.apache.commons.fileupload.disk.DiskFileItemFactory;importorg.apache.commons.fileupload.servlet.ServletFileUpload;importjavax.servlet.*;importjavax.servlet.http.*;importjavax.servlet.annotation.*;importjava.io.IOException;importjava.util.List;@WebServlet(name="testServlet",value="/testServlet")publicclasstestServletextendsHttpServlet{@OverrideprotectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{this.doPost(request,response);}@OverrideprotectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{if(ServletFileUpload.isMultipartContent(request)){FileItemFactoryfileItemFactory=newDiskFileItemFactory();ServletFileUploadservletFileUpload=newServletFileUpload(fileItemFactory);try{List<FileItem>list=servletFileUpload.parseRequest(request);for(FileItemfileItem:list){if(fileItem.isFormField()){System.out.println("bname"+fileItem.getFieldName());System.out.println("bvalue"+fileItem.getString("UTF-8"));}else{System.out.println("xname"+fileItem.getFieldName());System.out.println("xvalue"+fileItem.getName());}}}catch(Exceptione){e.printStackTrace();}}}}

servletFileUpload.parseRequest(request);解析数据
if(fileItem.isFormField()){遍历每个input判断是不是文件上传框
如果不是fileItem.getFieldName()获取每个input的name
fileItem.getString(“UTF-8”)获取每个input的值 这里可以获取text的值
如果不是 fileItem.write(file);可以用此方法上传文件写入服务器端

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/19 13:38:26

Safari 最近标签切换器:MRU 排序与模糊搜索实现

1. 为什么我要自己动手做一个 Safari 最近标签切换器用 Safari 的人大概都有过这种体验&#xff1a;开了十几个标签页&#xff0c;在几个页面之间来回跳&#xff0c;想切回刚才看的那一个&#xff0c;结果只能靠眼睛在标签栏里一个个找&#xff0c;或者用Control Tab一路按过去…

作者头像 李华
网站建设 2026/9/19 13:37:50

Windows 下 Node.js 安装配置全攻略:环境变量与 npm 避坑指南

1. 为什么 Node.js 在 Windows 上的安装值得单独写一篇很多人第一次接触 Node.js 都是在 Windows 上&#xff0c;下载一个 msi 安装包&#xff0c;一路 Next&#xff0c;装完之后打开命令行敲node -v能出版本号&#xff0c;就以为万事大吉了。结果真正开始跑项目的时候&#xf…

作者头像 李华
网站建设 2026/9/19 13:34:02

静态手势识别实战:从数据集构建到模型部署

简介&#xff1a;这是一份基于深度学习的静态手势识别论文PDF&#xff0c;面向计算机视觉研究者与学生&#xff0c;以AlexNet和TensorFlow为核心&#xff0c;系统讲解数据采集、数据增强、CNN建模、参数训练与测试流程。压缩包共1个PDF文件&#xff0c;大小约1.82MB&#xff0c…

作者头像 李华
网站建设 2026/9/19 13:31:16

LibreHardwareMonitor 硬件监控工具:新手快速上手完整指南

LibreHardwareMonitor 硬件监控工具&#xff1a;新手快速上手完整指南 【免费下载链接】LibreHardwareMonitor Libre Hardware Monitor is free software that can monitor the temperature sensors, fan speeds, voltages, load and clock speeds of your computer. 项目地址…

作者头像 李华