通过base64 上传文件 - 开源中国社区
程序员文章站
2022-04-01 14:00:35
...
这里的图片路径用的相对路径,不建议这样,最好用dirname(__DIR__)获取到路径后用realpath()函数获取绝对路径。
/** * base64图片上传 * @param $base64_img * @return array */ private static function img_upload($base64_img){ $base64_img = trim($base64_img); $up_dir = '../../../upload/images/interface/'; if(!file_exists($up_dir)){ mkdir($up_dir,0777); } if(preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_img, $result)){ $type = $result[2]; if(in_array($type,array('pjpeg','jpeg','jpg','gif','bmp','png'))){ $new_file = $up_dir.date('YmdHis_').method::getRandChar().'.'.$type; if(file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_img)))){ $img_path = str_replace('../../..', '', $new_file); return array('code' => 1, 'msg' => "图片上传成功", 'url' => $img_path); } return array('code' => 2, 'msg' => "图片上传失败"); } //文件类型错误 return array('code' => 4, 'msg' => "文件类型错误"); } //文件错误 return array('code' => 3, 'msg' => "文件错误"); }