文件上传在应用中是比较常用的的一种功能,比如用户的意见反馈功能。用户可以上传图片,音视频等文件,方便用户反馈问题的情况。
下来我将和大家一起梳理下需要掌握的知识,少走弯路一步到位,实现文件上传功能。
第一步:了解请求头
需要先大致了解一下上传信息需要的请求结构。当我们掌握了请求头的结构,就可以根据自己项目情况选择sdk或者自己实现HTTP请求。
使用HTTP进行文件上传需要用到POST请求。POST请求包含请求Head 和请求Body。
上传文件需要使用 Content-type为multipart/form-data 的格式,发送请求信息。这种格式的数据会有一个边界线用于分割不同的字段。如下文中的:boundary=86489a0c-3d1f-4351-8f49-58315690babe
请求Head: 一般会携带客户端的一些信息包括签名,token等。服务端用这些信息来校验是否合法。
请求Body: 会携带文件的信息和相关的参数便于服务端进行区分。
消息头可以携带签名信息等字段,用于服务端校验。请求头中的 head1 和head2,代表token,uuid,key等信息用于校验。
POST https://*****/upload
Content-Type: multipart/form-data; boundary=86489a0c-3d1f-4351-8f49-58315690babe
Content-Length: 83014
head1: param
head2: param
消息主体以分界线开始,紧接着就是内容描述信息,可以携带多个字段进行资源数据的描述。最后是字段具体的内