下载网络文件(如:图片)至本地服务器或者阿里云oss

本文介绍了如何使用PHP编程从网络下载文件,包括图片,并将其存储到本地服务器或阿里云OSS对象存储服务。内容涵盖HTTP请求、文件流处理及阿里云SDK的使用。
应用场景:
1.下载微信头像保存至本地服务器或者阿里云oss
2.保存富文本网络文件到本地服务器
/**
     * 下载网络资源上传至阿里云
     * @param string $url 网络资源
     * @param string $saveDir 保存目录
     * @return string 返回成功文件在oss的储存路径
     * @throws Exception
     */
    public static function downloadFileToOss(string $url, string $saveDir){
        //获取网络文件字符串内容
        $imageStr = file_get_contents($url);

        //创建临时文件资源
        $resource = tmpfile();

        //获取临时文件资源信息
        $metaInfo = stream_get_meta_data($resource);

        //获取临时文件真实路径
        $tmpFileRealPath = $metaInfo['uri'];

        //把网络文件内容写入临时资源文件
        $size = fwrite($resource,$imageStr);

        //重置游标位置到文件开始位置
        rewind($resource);

        //获取文件前两个字节
        $bin = fread($resource,2);
        $str_info = @unpack("C2chars", $bin);
        $type_code = intval($str_info['chars1'].$str_info['chars2']);

        //匹配文件类型
        switch ($type_code) {
            case 7790:
        
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DoubleDLing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值