PHP上传URL地址网络文件到服务器

发布日期: 2020-06-29 14:11:47 作者: Stephen 评论: 0

如何将一个URL地址的网络资源文件上传到服务器?首先考虑的方法是将文件下载到本地,然后进行上传操作,那有没有一个更方便的方法,将一个网络文件直接上传到服务器呢?是不是可以通过文件流的方式上传呢?

我这里使用的是 Guzzle 三方库,将一张百度上的图片上传到其他服务器

use GuzzleHttp\Client;

try {
    $file = fopen('https://t8.baidu.com/it/u=1484500186,1503043093&fm=79&app=86&size=h300&n=0&g=4n&f=jpeg', 'r');

    $multipart = [
        [
            'name' => 'file',
            'contents' => $file
        ]
    ];
    $client = new Client(['verify' => false]);
    $response = $client->request('POST', 'https://xx.com/upload', [
        'multipart' => $multipart
    ]);

    if ($response->getStatusCode() === 200) {
        $content = $response->getBody()->getContents();
        $result = json_decode($content, true);
    }

} catch (\Exception $exception) {
    echo $exception->getMessage();
}

return $result;

快来抢沙发