TP5 做图片流上传

TP5 接口模式 图片流保存图片

    /**
     * @param $img
     * 图片流格式
     */
    public function setPicRoute($file)
    {
        if (empty($file)){
            return;
        }
        if(empty($uploadPath)){
                $uploadPath = $this->comment_dir;       //保存图片的绝对路径
                $picr = $this->upload_directory.$this->comment_directory;
        }
        $img_name = [];
        if (is_array($file)){       //判断是否为多张图片,记得接收图片格式的时候要json_decode($img,true)转成数组
            foreach ($file as $img){
                $img_name[] = $this->uploadOne($img,$uploadPath,$picr);     //图片上传
            }
        }else{
            $img_name[] = $this->uploadOne($file,$uploadPath,$picr);        //图片上传
        }
        return implode(',',$img_name);      //返回图片路径,用,分割的字符串
    }



    function uploadOne($file,$uploadPath,$picr = '')
    {
        header('Content-type:text/html;charset=utf-8');         
        $base64_image_content = trim($file);            
        //正则匹配出图片的格式
        if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result)) {
            $type = $result[2];//图片后缀

            $dateFile = date('Y-m-d', time()) . "/";  //创建目录
            $new_file = $uploadPath.$dateFile;
            if (!file_exists($new_file)) {
                //检查是否有该文件夹,如果没有就创建,并给予最高权限
                mkdir($new_file, 0700,true);
            }
            $filename = time() . '_' . uniqid() . ".{$type}"; //文件名
            $new_file = $new_file . $filename;
            //写入操作
            if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_image_content)))) {
                return $picr.$dateFile . $filename;  //返回文件名及路径
            } else {
                throw new JsonErrorException('上传图片失败!');
            }
        }
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 理工寝室商店-微信小程序 疑问小结 当时在XAMMP下mysql目录下的bin下 php -v 不起作用.到ph...
    这个超人不会飞阿阅读 1,744评论 1 1
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,145评论 1 32
  • 7.1 压缩图片 一、基础知识 1、图片的格式 jpg:最常见的图片格式。色彩还原度比较好,可以支持适当压缩后保持...
    AndroidMaster阅读 2,581评论 0 13
  • 难道生活中的一切都需要设计和演练?如果这样的话,活的是否太累太累了!职场中到处的陷阱与地雷!让我谜茫!总想保持着这...
    禅行阅读 177评论 0 2
  • 随着大家生活水平的不断提高,健康意识的不断增强,全民健身已然成风,越来越多的人爱上了运动。 不用说,大家都知道适量...
    走在荆棘里的羊阅读 780评论 1 6