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

韩小韩
2021-01-15 / 2 评论 / 1,623 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年01月15日,已超过1200天没有更新,若内容或图片失效,请留言反馈。
如何将一个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;
2

评论 (2)

取消
  1. 头像
    TuAn
    Windows 10 Windows 10 / Google Chrome Google Chrome 中国四川省成都市电子科技大学清水河校区

    博主,你这个demo有吗?我有个小想法:提交github文件url,上传到服务器,然后直接从服务器下载,但一直找不到简单方法实现表情

    回复
    1. 头像
      韩小韩 作者
      Windows 10 Windows 10 / QQ 浏览器 QQ 浏览器 中国江苏省徐州市移动
      @ TuAn

      这个就是demo,直接用即可

      回复