PHP:使用远程 URL 上传 CurlFile

问题描述 投票:0回答:2

过去几天我一直在寻找如何使用 Curl 在 PHP >=5.5 中上传文件。最后我找到了新的 CurlFile 方法,但无法让它与远程 URL 一起使用。这是我正在使用的代码:

        $access_token = 'MY_API_ACCESS_TOKEN';
        $fields = array(
            "name" => $name,
            "parent" => array(
                "id" => $folder_id
            )
        );
        $another = array(
            'attributes' => json_encode($fields),
            'file' => new CurlFile($remoteUrl)
        );
        $header = array (
            "Authorization: Bearer $access_token",
            "Content-Type: multipart/form-data"
        );
        $options = array(
            CURLOPT_URL => $UPLOAD_URL,
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => $another,
            CURLOPT_HTTPHEADER => $header,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_SSL_VERIFYPEER => false
        );
        $ch = curl_init();
        curl_setopt_array($ch, $options);
        $response = curl_exec($ch);
        curl_close($ch);

$remoteUrl
替换为本地文件路径时,一切正常。

Q]CurlFile可以远程上传吗?如果是的话我做错了什么?

php rest curl file-upload
2个回答
6
投票

好吧,我找到了答案:来源

无法使用curl上传远程文件。必须先将文件下载到本地,然后使用CurlFile上传。


0
投票

在我的例子中也尝试指定 mimeType 和名称:

'file' => new CURLFile($media->sourceUrl(), $media->mimeType(), $media->name())

sourceUrl 指向 S3 url,mimeType 为 video/mp4,名称为 video.mp4

© www.soinside.com 2019 - 2024. All rights reserved.