问题:

form表单的enctype设置为multipart/form-data后,表单中除了文件后台能拿到,其他值后台都拿不到。

知识点:

一、application/x-www-form-urlencoded:

1、表单中的enctype值如果不设置,则默认是application/x-www-form-urlencoded,它会将表单中的数据变为键值对

的形式

2、如果action为get,则将表单数据编码为(name1=value1&name2=value2…),然后把这个字符串加到url后面,中间

用?分隔

3、如果action为post,浏览器把form数据封装到http body中,然后发送到服务器。

二、text/plain:

表单以纯文本形式进行编码

三、multipart/form-data:

1、当我们上传的含有非文本内容,即含有文件(txt、MP3等)的时候,需要将form的enctype设置为multipart/form-

data。

2、将表单中的数据变成二进制数据进行上传,所以这时候这时如果用request是无法直接获取到相应表单的值的

解决代码

public void execute1(HttpServletRequest request) throws IOException {try {//获取文件保存路径,判断是否存在该目录如果不存在创建String Path = "/test.txt";File file = new File(Path);//判断文件是否存在,不存在就创建if (!file.exists() && !file.isDirectory()) {file.mkdirs();}DiskFileItemFactory factroy = new DiskFileItemFactory();//创建文件上传解析器ServletFileUpload upload = new ServletFileUpload(factroy);//判断前端form表单是否为enctype="multipart/form-data"属性boolean isF = ServletFileUpload.isMultipartContent(request);//如果前端传过来的是表单是enctype="multipart/form-data"属性if (isF) {//使用解析器解析上传的表单数据,每个FileItem对应一个表单项List<FileItem> fileItemList = upload.parseRequest(request);for (FileItem fileItem : fileItemList) {if (!fileItem.isFormField()) {//不是普通的表单项,即是上传的是文件//获取文件名称String fileName = fileItem.getName();if (fileName.isEmpty()) {//如果文件名为空return;}//获取上传文件输入流InputStream in = fileItem.getInputStream();//创建文件输出流Path += "\\" + fileName;String str = "";String leng = "";BufferedReader br = new BufferedReader(new InputStreamReader(in, "utf-8"));while ((leng = br.readLine()) != null) {str += leng;}System.out.println(str);BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(Path))));bw.write(str);bw.flush();bw.close();br.close();//FileItem对象被垃圾收集器收集时会自动清除临时文件,但及时调用delete方法可以更早的清除临时文件,释放系统存储资源。// 另外,当系统出现异常时,仍有可能造成有的临时文件被永久保存在了硬盘中。fileItem.delete();} else {/*** 获取表单中的非文件值*///表单中的空间name值System.out.println(fileItem.getFieldName());//该name值空间中的value值System.out.println(fileItem.getString("UTF-8"));}}} else {//判断前端form表单不是enctype="multipart/form-data"属性,这里就不做处理了}} catch (Exception e) {e.printStackTrace();}}

微信公众号关注: 965净化者

enctype=“multipart/form-data“表单传值问题相关推荐

  1. html+form+multipartform-data,表单 – 如何处理node.js中的multipart / form-data

    以下链接重复提问. 这是一个例子: // Expose modules in ./support for demo purposes require.paths.unshift(__dirname + ...

  2. 一、PHP基础——表单传值、上传文件

    表单传值 概念: 表单传值即浏览器通过表单元素将用户的选择或者输入的数据提交给后台服务器语言. 为什么使用表单传值? 动态网站(Web2.0)的特点就是后台根据用户的需求定制数据,所谓的"需 ...

  3. PHP零基础入门-表单传值

    表单传值的意义 定义:表单传值,就是通过在HTML中使用表单标签,通过表单来获取用户的数据,然后通过HTTP协议将数据递交给后台. 1.表单传值的意义:表单传值能够帮助网站收集用户数据,实现用户和网站 ...

  4. 用multipart/form-data提交表单文件数据获取不了解决办法

    在学习Servlet文件上传方面遇到了一个问题,就是通过multipart/form-data这个表单类型提交要上传的文件的时候,Servlet用request.getParameter()方法获取非 ...

  5. php表单传值哪几种方式,PHP表单传值的方式有哪些?

    本篇文章主要给大家介绍PHP表单传值的两种方式,一种是通过$_GET变量 .另一种是通过$_POST变量.(相关推荐:<PHP教程>) 下面我们就结合具体的PHP代码示例给大家介绍,PHP ...

  6. Java入力项目无法设定到form_html中关于form与表单提交操作的资料集合

    原标题:html中关于form与表单提交操作的资料集合 这里我们介绍一下form元素与表单提交方面的知识. form元素 form元素的DOM接口是HTMLFormElement,继承自HTMLEle ...

  7. post multipart/form-data 类型表单如何获取File外其他参数

    参考资料: post multipart/form-data 类型表单如何获取File外 其他参数:https://www.douban.com/note/536231506/ multipart/f ...

  8. 关于form与表单提交

    一个表单里面只要有form元素,如果没有给action加一个默认值,为空白的时候,当你刷新页面时,会弹出一个警告框提示你已经填入表单,刷新数据将会丢失. 如果一个表单里面有一个type="s ...

  9. 【web结课大作业】创建一个注册页面并引用正则表达式,点击注册按钮后可以弹窗显示刚刚注册输入的信息(表单传值)

    这个代码有借鉴其它博主的部分,借鉴了别的博主的css样式和框架(嘻嘻算是站在巨人的肩膀上),内容自己改了七七八八.参考博文如下(这个原博文只能实现正则判断,没有表单传值功能): HTML--登录.注册 ...

  10. 关于form与表单提交操作的一切

    著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 链接:http://caibaojian.com/form.html 来源:http://caibaojian.com 你知道, ...

最新文章

  1. 机器人最大的人类士人禾力积木_开化县华埠镇中心小学:积木机器人好玩儿~~...
  2. 利用tuning-primer脚本优化MySQL数据库
  3. Visual Studio2015如何连接到windows azure(国内版本)
  4. html5点击显示展开列表,HTML5 - 如何折叠和展开复杂的表格元素
  5. 云服务器deeplearning_开始使用 AWS Deep Learning AMI 进行深度学习 | AWS
  6. PCM - partner channel management 的数据库表介绍
  7. Ubuntu 开机自动挂载硬盘
  8. opencv笔记(6):彩色图像直方图
  9. 你真的会调试 Linux 内核故障吗,看完这一篇后你会茅塞顿开的!
  10. 如何给网站添加rss功能
  11. linux ns级定时器_linux 用户空间获得纳秒级时间ns
  12. JAVA上百实例源码以及开源项目
  13. Weblogic 下载
  14. seo优化基础知识:如何优化博客文章
  15. 计算机质量监督检验报告,质量监督检验(检测)报告自动生成管理系统软件
  16. java web景点规划导航
  17. CSDN 博客专家申请入口
  18. Unity游戏开发入门
  19. 计算机控制实验ppt模板,计算机控制技术实验课件.ppt
  20. 噩梦射手(SurvivalShooter)教程(二)

热门文章

  1. paddle 模型与层---- 笔记(边学边练)
  2. STM32 | 学习STM32的一些经验分享
  3. 9 GHacker的解谜过关游戏
  4. 电视剧里的小角色以及我生活里的那些人001
  5. 一个高铁线杆杆号自动识别分类系统
  6. Unity仿制经典像素游戏笨鸟先飞
  7. 对人生几个重要的东西的感悟,写的很好
  8. 【转】误读千年的七句名言
  9. 迁移学习在深度学习中的边缘分布对齐和条件分布对齐
  10. 实例化Servlet类异常