http上传文件,http实体部分是要写全整个文件的二进制吗?
http上传的时候,首部用的Content-Type是multipart/form-data;
下面是一个例子,我假设向一个服务发送上传文件请求:
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
(此处省略jpg文件二进制数据,我可能很大,比如500M的图片...)
-------------------------------7db372eb000e2--
我的问题:
二进制数据部分(已标红),是一次先把文件读取完再上传吗?如果是一个很大的文件比如:500M
,是不是读很长时间,组成一个超大的http请求体,再向服务器发送。还是另一种方式:读一
部分比如:1M,就向服务器发送,接着再读再发,保证服务器的接收流不断。