base64保存图片
public function base64Img(XhyRequest $request){
$data = $request->param();
if(!empty($data['FJ_img'])){
$reg = '/data:image\/(\w+?);base64,(.+)$/si';
preg_match($reg,$data['FJ_img'],$match_result);
var_dump($match_result);die;
$file_name = time().'.'.$match_result[1];
$logo_path = 'uploadimg/'.$file_name;
$num = file_put_contents($logo_path,base64_decode($match_result[2]));
if(!empty($num)){
$img['img_url']=add_http($_SERVER['HTTP_HOST'].'/'.$logo_path);
outJson('200','保存成功',$img);
}else{
outJson('401','保存失败');
}
}else{
outJson('403','参数错误');
}
}
文件流
这种是tp6的,要记得引入
还有想要改变路径可以去config/filesystem.php修改
use think\facade\Filesystem;
public function UploadImg(XhyRequest $request){
// 获取表单上传文件 例如上传了001.jpg
$file = request()->file('FJ_img');
if ($file) {
// 上传到本地服务器
//重新命名
$save_name=date("Ymd").'/'.md5(time().mt_rand(10,99)).".jpg";
$fileName = Filesystem::putFileAs( 'topic', $file,$save_name);
$url=add_http($request->server()['HTTP_X_ORIGINAL_HOST'].'/uploadImg/'.$fileName);
// var_dump($url);
$data=$this->Picture($url);
// var_dump($data);
$data=json_decode($data,true);
$data=json_decode($data['data'],true);
$data['url']=$url;
return $this->success($data,'success');
}else {
//没有接收到数据流
return $this->fail('请上传图片','',Code::UPLOAD_FLIE);
}
}
十六进制
public function BinaryImg(XhyRequest $request){
$byte = @file_get_contents('php://input');
// //将获取到的值转化为数组格式
// $byte = json_decode($byte,true);
//数据流不为空,则进行保存操作
if (! empty ( $byte['FJ_img'] )) {
// var_dump($byte);
$byte = str_replace(' ','',$byte['FJ_img']); //处理数据
$byte = str_ireplace("<",'',$byte);
$byte = str_ireplace(">",'',$byte);
$byte=pack("H*",$byte); //16进制转换成二进制
$save_name=md5(time().mt_rand(10,99)).".jpg";
$path='./uploadImg/';
//创建并写入数据流,然后保存文件
if ($save_name) {
file_put_contents($path.$save_name,$byte);
// var_dump($save_name);die;
if (file_exists($path.$save_name)) {
// 拼接url
$url=add_http($_SERVER['HTTP_HOST'].'/'.$path.$save_name);
// $data['data']=$this->Picture($url);
outJson('200','保存成功',$url);
} else {
outJson('402','仅支持jpg,png,jpeg,gif格式的图片类型上传,gif动态图片上传后不会有动态效果');
}
} else {
outJson('400','操作失败');
}
} else {
//没有接收到数据流
outJson('403','请上传图片');
}
}