gpt4 book ai didi

php - 如何使用 php 代理转发请求的多部分/表单数据主体

转载 作者:搜寻专家 更新时间:2023-10-31 22:14:20 25 4
gpt4 key购买 nike

我想用php代理解决上传文件时的跨域问题。在脚本中我使用 php curl 来转发请求和响应,但是当请求主体是 multipart/format-data 时,我不知道如何将请求主体转发到服务器。当 Content-Type header 为“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�;-�mG\u#...
.
.
.

最佳答案

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

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

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

关于php - 如何使用 php 代理转发请求的多部分/表单数据主体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8483806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com