php上传图片base64上传thinkphp5上传upload图片源码下载

php上传图片base64上传thinkphp5上传upload图片源码下载


    function uploadbaseAction()
    {

        $img_path   = ROOT_PATH . 'test' . DS . 'media'. DS . 'bag'. DS . date('Ymd');
        $base64_image_content   = request()->post('file');
        $base64_image_content   = str_replace(" ", "+", $base64_image_content);

        //test
//        $img_dir = ROOT_PATH . 'public' . DS . 'media'. DS . 'bag'. DS . date('Ymd').DS.'b.jpg';
//        $base64_image_content = $this->imgToBase64($img_dir);
        //test end

        if (!preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result))
        {
            return json(['state'=>'failure','error'=>2,'msg'=>'base64图片格式有误']);
        }

        $type               = $result[2];//图片后缀
        $image_name         = date('ymdHis').rand(1000,9999).".".$type;
        $imge_real_url      = $img_path.'/'.$image_name;
        if (!file_exists($img_path))
        {
            mkdir($img_path, 0700);
            fopen($img_path.'\\'.$image_name, "w");
        }

        $decode             = base64_decode(str_replace($result[1], '', $base64_image_content));

        if (!file_put_contents($imge_real_url, $decode))
        {
            return json(['state'=>'failure','error'=>2,'msg'=>'图片保存失败']);
        }

        $data   = [
            'Extension' => $type,
            'saveName' => $image_name,
            'file_path' => '/media/bag/'.date('Ymd').'/'.str_replace("\\","/", $image_name),
            'Filename' => $image_name,
        ];
        $returnData =  ['state'=>'success','error'=>1, 'msg'=>'保存成功','data'=>$data];
        return json($returnData);
    }


    /**
     * 获取图片的Base64编码(不支持url)
     * @date 2017-02-20 19:41:22
     *
     * @param $img_file 传入本地图片地址
     *
     * @return string
     */
    function imgToBase64($img_file) {

        $img_base64 = '';
        if (file_exists($img_file)) {
            $app_img_file = $img_file; // 图片路径
            $img_info = getimagesize($app_img_file); // 取得图片的大小,类型等

            //echo '
' . print_r($img_info, true) . '

'; $fp = fopen($app_img_file, "r"); // 图片是否可读权限 if ($fp) { $filesize = filesize($app_img_file); $content = fread($fp, $filesize); $file_content = chunk_split(base64_encode($content)); // base64编码 switch ($img_info[2]) { //判读图片类型 case 1: $img_type = "gif"; break; case 2: $img_type = "jpg"; break; case 3: $img_type = "png"; break; } $img_base64 = 'data:image/' . $img_type . ';base64,' . $file_content;//合成图片的base64编码 } fclose($fp); } return $img_base64; //返回图片的base64 } function testAction() { $img_dir = ROOT_PATH . 'test' . DS . 'media'. DS . 'bag'. DS . date('Ymd').DS.'b.jpg'; $img_base64 = $this->imgToBase64($img_dir); echo ''; echo $img_base64;exit; }

 

 

 

 

 

你可能感兴趣的:(myphp)