如何使用multipart/form-data格式上传文件
来源:互联网 发布:政务大数据解决方案 编辑:程序博客网 时间:2024/06/05 00:20
有时,在网络编程过程中需要向服务器上传文件。Multipart/form-data是上传文件的一种方式。
Multipart/form-data其实就是浏览器用表单上传文件的方式。最常见的情境是:在写邮件时,向邮件后添加附件,附件通常使用表单添加,也就是用multipart/form-data格式上传到服务器。
表单形式上传附件
具体的步骤是怎样的呢?
首先,客户端和服务器建立连接(TCP协议)。
第二,客户端可以向服务器端发送数据。因为上传文件实质上也是向服务器端发送请求。
第三,客户端按照符合“multipart/form-data”的格式向服务器端发送数据。
Multipart/form-data的格式是怎样的呢?
既然Multipart/form-data格式就是浏览器用表单提交数据的格式,我们就来看看文件经过浏览器编码后是什么样子。
HTML表单
浏览器打开的表单
点击“Browse…”分别选择“unknow.gif”和“unknow1.gif”文件,点击“submit”按纽后,文件将被上传到服务器。
下面是服务器收到的数据:
服务器收到的数据
这是一个POST请求。所以数据是放在请求体内,而不是请求头内。
这行指出这个请求是“multipart/form-data”格式的,且“boundary”是 “---------------------------7db15a14291cce”这个字符串。
不难想象,“boundary”是用来隔开表单中不同部分数据的。例子中的表单就有 2 部分数据,用“boundary”隔开。“boundary”一般由系统随机产生,但也可以简单的用“-------------”来代替。
实际上,每部分数据的开头都是由"--" + boundary开始,而不是由 boundary 开始。仔细看才能发现下面的开头这段字符串实际上要比 boundary 多了个 “--”
紧接着 boundary 的是该部分数据的描述。
接下来才是数据。
“GIF”gif格式图片的文件头,可见,unknow1.gif确实是gif格式图片。
在请求的最后,则是 "--" + boundary + "--" 表明表单的结束。
需要注意的是,在html协议中,用 “/r/n” 换行,而不是 “/n”。
- 如何使用multipart/form-data格式上传文件
- 如何使用multipart/form-data格式上传文件
- 如何使用multipart/form-data格式上传文件
- 如何使用multipart/form-data格式上传文件
- 如何使用multipart/form-data格式上传文件
- 如何使用multipart/form-data格式上传文件
- 如何使用multipart/form-data格式上传文件
- multipart/form-data格式上传文件
- 使用multipart/form-data上传文件
- 使用multipart/form-data上传文件
- multipart/form-data 上传文件
- HTTP multipart/form-data格式之文件上传
- iOS里实现multipart/form-data格式上传文件
- httpClient 使用multipart/form-data 类型上传文件及表单
- httpClient 使用multipart/form-data 类型上传文件及表单
- 上传文件multipart form-data boundary 说明
- Http 上传文件之multipart form-data
- Multipart/form-data POST文件上传详解
- 常用模块的测试用例(登录,添加,删除,查询)
- Julia: 引用、copy与数组
- Linux文件和目录常用命令
- 高精度_加法
- 网站开发进阶(八)tomcat异常日志分析及处理
- 如何使用multipart/form-data格式上传文件
- 原码, 反码, 补码 详解
- 支付宝的应用+代码
- 时间换算
- 第九周项目2- 对称矩阵压缩存储的实现与应用
- multithreading--演示中断线程Thread的异常
- 经典SQL语句大全
- HDU 1216 Assistance Required
- VoIPER测试工具的使用