本实验为了减少代码量,使用了封装比较完善的http库,本文主要讲述http文件上传的主要要求。
一、分析http关键头部信息
为了分析http header,我们通过chrome得到上传文件时的http信息:
html_header.PNG
通过上面的截图我们可以发现,关键头部信息为Content-type和Content-length。一般我们写html上传时,都会在form标签加一个multipart-data属性表示该表单有文件上传输入域,so我们在使用c实现http上传的时候,就需要在头部Content-type项加入multipart-data值,有人会问,诶,那后面的boundary是什么?
boundary表示的是每个表单输入域的分界!例:—-ZnGpDtePMx0KrHh_G0X99Yef9r8JZsRJSXC
好了,Content-type有了,接下来我们需要的就是Content-length项的信息了。Content-length表示的是请求内容的长度(byte),那这个长度到底是多大?请看下图:
sum.PNG
从图中我们不难看出,Content-length=上传文件大小+输入域头部信息+输入域尾部(byte)。
贴上计算长度的代码一份作为参考:
int ge