• tp5 上传图片(自定义图片路径)


    控制器调用

            /**
             * [goods_addimg 图片上传]
             * @return [type] [description]
             */
            public function addimg(){
                if (request()->isPost()) {
                    $post = request()->file();
                    $str = '';
                    $d = "";
                    $i = 0;
                    //自定义路径
                    $url = 'img' . DS . 'goodsimg';
                    foreach ($post as $key => $value) {
                        $i++;
                        if ($i!=1) {
                            $d = ",";
                        }
                        $str .= $d.  addimg($value,$url);
                    }
                    return jsonData(1,'图片上传成功',$str);
                }
            }    

    公共方法

    /**
     * [addimg 图片上传]
     * @param  [type] $filename [description]
     * @return [type]           [description]
     */
    function addimg($pic,$url){
    
        // 获取表单上传文件 例如上传了001.jpg
        // $file = request()->file($filename);
        // 移动到框架应用根目录/public/uploads/ 目录下
        // $file = request()->file($pic);
        if (is_array($pic)) {
    
            foreach($pic as $file){
                // 'img' . DS . 'goodsimg'
                // 移动到框架应用根目录/public/uploads/ 目录下
                $info = $file->validate(['size'=> 1024 * 1000 ,'ext'=>'jpg,png,gif'])->move(ROOT_PATH . 'public'. DS .$url);
                $data[] = str_replace('\', '/',$url . '/' . $info->getSaveName());
            }
    
            return implode(',',$data);
        } elseif (is_object($pic)) {
            $info = $pic->validate(['size'=> 1024 * 1000 ,'ext'=>'jpg,png,gif'])->move(ROOT_PATH . 'public'. DS . $url);
            if($info){
                //返回文件位置信息 如:20180620/42a79759f284b767dfcb2a0197904287.jpg
                return  str_replace('\', '/',$url . '/' . $info->getSaveName());
    
            }else{
                // 上传失败获取错误信息
                return false;
                // return $file->getError();
            }
            //单文件上传
        }
    }
  • 相关阅读:
    系统的讲解
    后端架构师技术图谱
    设计模式简介(45种)
    浅入浅出 Go 语言接口的原理
    我所认为的RESTful API最佳实践
    Mysql 索引精讲
    客户端与服务端的三次握手与四次挥手
    线程的安全和可重入(待续)
    进程和线程(待续)
    设计模式(3)--观察者模式(待续)
  • 原文地址:https://www.cnblogs.com/junyi-bk/p/11401656.html
Copyright © 2020-2023  润新知