2012-01-19 163 views
1

如何在C(或C++)中使用HTTP协议上传(非常)大文件?使用HTTP/POST传输大文件

我知道这不是上传大文件的正确方法,但那不是重点。

我已经看到关于POST传输文件的源代码,但是我注意到,每一次,整个二进制文件都包含在POST序列内(“--boundary”之间)。

因此,在深入研究Webkit/Gecko源代码之前,有人知道他们是怎么做的?

+1

你确定你在谈论下载吗? “POST”请求听起来更像是上传。 –

+1

你的意思是上传? –

+0

当然是的......我改变了我的问题,我的错:( – Stef

回答

2

您可以使用HTTP POST请求中的“Content-Range”标题上传一个巨大文件的切片。

POST http://[server_ip]:80/upload?fn=xx.dat HTTP/1.1 
Content-Range: bytes=0-4095 
Content-Type: application/octet-stream 
Content-Length: 4096 

...... 
0

您可以使用分块方法以块为单位发送数据。这将允许您发送/接收更大规模的数据。请参阅RFC 2616关于分块如何真正起作用。