提醒我见过一些人已经问过但通常是关于CURL的,我问的是通过WinSock2发送它。
好的,所以我知道如何轻松地制作POST和GET语句,(使用Application / application / x-www-form-urlencoded进行POST)但我不知道如何使用multipart / form-data,我知道它有与边界有关,以指定何时完成发送数据。
但是基本的HTTP POST应该如何才能上传文件? (你也可以上传到PHP POSTBACK吗?如果它是application / x-www-form-urlencoded,我可以看到它像filename = hello.png& data = ...)
像这样的格式:(这就是我所知道的关于发送数据的全部内容)我在网上找不到一个可靠的例子,所以我在问这个问题。
POST /postback.php HTTP/1.1
HOST: www.website.com
Content-Type: multipart/form-data; boundary=----IAmABoundary
Content-Length: 300
------IAmABoundary
Send Binary Data?
------IAmABoundary--
答案 0 :(得分:0)
使用fiddler来捕获上传文件然后你可以看到实际的格式,我记得上面的例子或多或少是正确的。这是一个更完整的答案,有一个很好的例子:Example of multipart/form-data
答案 1 :(得分:0)
HTTP消息是MIME消息。它实际上是一种相当复杂的编码格式。
首先阅读RFC 2045。这是MIME的基本规范。
然后,转到RFC 2046。 RFC 2046的第5部分列出了multipart
MIME消息的规范,该消息用于您所看到的multipart/form-data
格式。
要阅读的内容很多,都是如此。但是,必须完全理解MIME格式的消息,以便有理解文件上传的工作方式。
答案 2 :(得分:0)
如果要实际发送文件内容,可以将文件内容放在HTTP标头之后,并设置内容类型和内容长度
multipart / form-data由html表单用于发布/提交在其字段中包含文件的表单,他们使用多部分边界分隔部分/字段