使用php代理的请求的数据体

我想在上传文件时使用php代理来解决跨域问题。 在脚本中,我使用php curl来转发请求和响应,但是当请求主体是multipart / format-data时,我不知道如何将请求主体转发到服务器。 当Content-Type标题为“multipart / form-data”时, file_get_contents('php:// input')将为空。 当使用curl_setopt($ ch,CURLOPT_POSTFIELDS,$ _POST)时 ,可以发送请求正文中的Content-Disposition,而文件的真实数据不能。

我的请求体是这样的:

------WebKitFormBoundaryd0tvwIvevPV4VTlP
Content-Disposition: form-data; name="name"

nbzdds.mp3
------WebKitFormBoundaryd0tvwIvevPV4VTlP
Content-Disposition: form-data; name="chunk"

15
------WebKitFormBoundaryd0tvwIvevPV4VTlP
Content-Disposition: form-data; name="chunks"

44

497161
------WebKitFormBoundaryd0tvwIvevPV4VTlP
Content-Disposition: form-data; name="file"; filename="blob"
Content-Type: application/octet-stream

��v;"S�;-�mGu#...
.
.
.

理想情况下,您希望在本地存储上传的文件,使用curl的FTP功能将文件从脚本服务器上传到存储服务器,然后删除脚本服务器上的缓存文件。

如果这不可行,请将curl请求发送到远程文件服务器上的脚本,该脚本应该将文件从原始服务器下载到自身。

它可能不如将上传的文件直接发送到远程文件服务器那么快,但它本质上是相同的,除非您在将文件上传到远程服务器时在本地缓存文件。 无论如何,这可能会更好,因为上传的数据不会存储在整个操作的服务器内存中,如果同时上传大量文件,可能会导致内存不足问题。

链接地址: http://www.djcxy.com/p/48895.html

上一篇: data body of request using a php proxy

下一篇: How to send JSON data in body with header using post method in PHP(cURL)