form如何正确post文件
2015-08-11 19:52
302 查看
form在HTML中,是用于收集用户输入的,基本所有浏览器都支持form。给form添加method属性,就能实现将用户在form内控件输入的信息POST到制定地址,或发送GET请求。
写了下面一段代码,为了实现将用户选择的文件,POST到server。server端文件接收代码见这里,本文只讲前端,不讲后端。form用于文件上传时,数据编码属性enctype必须设置为multipart/form-data,属性说明见这里。
在FireFox中用FireBug查看HTTP报文:
百思不得其解,就到stackoverflow发帖问了。 原来,form中的控件,只有加了name属性的,才生效!
改正后的代码:
写了下面一段代码,为了实现将用户选择的文件,POST到server。server端文件接收代码见这里,本文只讲前端,不讲后端。form用于文件上传时,数据编码属性enctype必须设置为multipart/form-data,属性说明见这里。
<form action="http://localhost:8000/upload/file=1.txt" enctype="multipart/form-data" method="post"> <input type="file"> <input type="submit" value="Send"> </form>
在FireFox中用FireBug查看HTTP报文:
Request Headers From Upload Stream Content-Length 48 Content-Type multipart/form-data; boundary=---------------------------121841334829646发现文件的内容根本不能POST到server,只有"-----------------------------121841334829646--"能被发送到server。用wireshark抓包也是同样的结果。
百思不得其解,就到stackoverflow发帖问了。 原来,form中的控件,只有加了name属性的,才生效!
改正后的代码:
<form action="http://localhost:8000/upload/file=1.txt" enctype="multipart/form-data" method="post"> <input type="file" name="xxx"> <input type="submit" value="Send"> </form>这是POST文件到server的所有数据:
-----------------------------30746427313740 Content-Disposition: form-data; name="xxx"; filename="1.txt" Content-Type: text/plain 111 -----------------------------30746427313740--其中只有“111”才是文件的内容。
相关文章推荐
- 【转】GDB调试方法汇总
- YTU 2896/POJ 2192 Zipper dfs
- day19
- 如何申请百度ak
- POJ1320 Street Numbers【佩尔方程】
- 一些文章
- 【暑期基础3】X HDU 2076 夹角有多大(题目已修改,注意读题[sic] )
- Sort List
- HDU栈外挂 用c++提交
- JavaWap基础
- 阿里云ECS购买优惠码
- HDU 5375 Gray code(2015年多校联合 动态规划)
- matlab 更改可用内存(最快速有效方法)
- Scala入门到精通——第二十三节 高级类型 (二)
- HDU 5375 Gray code(DP或分情况讨论)
- 【转】HBase客户端API:管理特性 - 架构(schema)定义
- 自定义点击方法target-action
- 《Java开发实战经典》第三章答案3.12
- 载波同步环路的带宽与信噪比相关问题
- webrtc 的回声抵消(aec、aecm)算法简介