大家都知道http是基于文本的协议,也就是说发送的无论是视频,音频,等等都会转换成
二进制字符串,然后传递给web服务器。一直纠结一件事,1.文件上传的时候,是不是
浏览器帮助我们把文件读取成为二进制字符串,然后附加一些文件类型,等等文件属性,
然后web服务器收到请求会相应的根据文件属性,把二进制字符串保留起来,加上
原来一样的后缀名和文件类型。也就达到了上传文件的目的。这样的理解是否正确?
请高手指教一下。
2.之后就是上传文件百分比%,是不是涉及到两边TCP通信问题,毕竟文件
太大(100M以上之类的)不可能客户端一次性读完,然后写到http请求头当中,还是什么?
求大神解惑

html中文件上传的原理
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- little_how 2017-09-15 03:15关注
楼主刚刚说的全部编码是不对的,在http协议体中的内容有三种编码方式:
1.application/x-www-form-urlencoded表示在发送前编码所有字符串
2.multipart/form-data不对字符编码(也就是说直接以二进制传输)
3.text/plain不对特殊字符进行编码在http上传的时候默认是选择1来进行编码报文体的
但是在文件上传的时候,就需要设置第2中,才能正常进行文件上传
你可以通过http抓包观察,每个表单在报文体都有一个描述,服务端在解析http报文的时候
可以根据描述来确认发送的是哪一类的报文,从而对应解析希望可以帮到你,有不明白的可以继续提问...
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报