android 文件上传表单 详解
来源:互联网 发布:linux命令窗口快捷键 编辑:程序博客网 时间:2024/06/05 15:17
转载:http://topmanopensource.iteye.com/blog/1605238
HTTP multipart/form-data 上传报文格式实现手机端上传
1.HTTP multipart/form-data 上传报文格式
假设接受文件的网页程序位于 http://192.168.24.56/logsys/home/uploadIspeedLog!doDefault.html.假设我们要发送一个图片文件,文件名为“kn.jpg”,
首先客户端链接 192.168.24.56 后, 应该发送如下http 请求:
POST/logsys/home/uploadIspeedLog!doDefault.html HTTP/1.1
Accept: text/plain, */*
Accept-Language: zh-cn
Host: 192.168.24.56
Content-Type:multipart/form-data;boundary=-----------------------------7db372eb000e2
User-Agent: WinHttpClient
Content-Length: 3693
Connection: Keep-Alive
-------------------------------7db372eb000e2
Content-Disposition: form-data; name="file"; filename="kn.jpg"
Content-Type: image/jpeg
(此处省略jpeg文件二进制数据...)
-------------------------------7db372eb000e2--
此内容必须一字不差,包括最后的回车,红色字体部分就是协议的头。给服务器上传数据时,并非协议头每个字段都得说明,其中,content-type是必须的,它包括一个类似标志性质的名为boundary的标志,它可以是随便输入的字符串。对后面的具体内容也是必须的。它用来分辨一段内容的开始。Content-Length: 3693 ,这里的3693是要上传文件的总长度。绿色字体部分就是需要上传的数据,可以是文本,也可以是图片等。数据内容前面需要有Content-Disposition, Content-Type以及Content-Transfer-Encoding等说明字段。最后的紫色部分就是协议的结尾了。
注意这一行:
Content-Type: multipart/form-data; boundary=---------------------------7db372eb000e2
根据 rfc1867, multipart/form-data是必须的.
---------------------------7db372eb000e2 是分隔符,分隔多个文件、表单项。其中b372eb000e2 是即时生成的一个数字,用以确保整个分隔符不会在文件或表单项的内容中出现。Form每个部分用分隔符分割,分隔符之前必须加上"--"着两个字符(即--{boundary})才能被http协议认为是Form的分隔符,表示结束的话用在正确的分隔符后面添加"--"表示结束。
前面的 ---------------------------7d 是 IE 特有的标志,Mozila 为---------------------------71.
每个分隔的数据的都可以用Content-Type来表示下面数据的类型,可以参考rfc1341 (http://www.ietf.org/rfc/rfc1341.txt)
例如 :Contect-Type:image/jpeg 表示下面的数据是jpeg文件数据
- android 文件上传表单 详解
- Android 表单模拟,文件上传!
- Android模仿表单上传文件
- android 模拟表单文件上传servlet
- Android 上传图片、上传文件、提交表单 工具类
- 表单里文件上传
- form表单上传文件
- form表单上传文件
- PHP 表单上传文件
- 表单上传文件
- 表单上传文件相关
- jsp表单文件上传
- Form表单文件上传
- jfinal表单文件上传
- 表单提交文件上传
- 提交表单上传文件
- form表单文件上传
- android 表单提交 (支持多文件上传) + 服务端代码
- android ndk 虚拟串口通信
- Windows Dos命令下查看端口号,杀死端口
- jsp视频播放代码 avi
- 关于display的那些事儿!
- eclipse中Tomcat的配置
- android 文件上传表单 详解
- linux下安装oracle
- android权限(permission)大全
- 环境搭建
- 移动端页面调试神器-browser-sync 实时刷新
- java读取图像的rpg以及灰度值,可以对rgb进行修改后输出新图像
- 利用TextSwitcher实现首页的公告展示功能
- Maven创建Web项目的具体步骤
- 用户界面框架jQuery EasyUI示例大全之Accordion