首页 / PHP / PHP base64多图片上传
PHP base64多图片上传
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP base64多图片上传,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1592字,纯文字阅读大概需要3分钟。
内容图文
// 多图片上传,base64
public function upload_multi() {
$pic = $_POST['pic'];
if (!$pic) {
$this->json->setErr('10001',lang('tips_param_error'));
$this->json->Send();
}
$err = 0;
$out_data = [];
if (is_array($pic)) {
foreach ($pic as $k=>$v) { // 处理base64图片数据
$img = $this->base64_to_img($v);
if (!$img) {
$err ++;
}
$out_data[] = $img;
}
} else {
// 处理base64图片数据
$img = $this->base64_to_img($pic);
if (!$img) {
$err ++;
}
$out_data[] = $img;
}
if($err == 0){
// 处理凭证绑定
$this->json->setErr(0,lang('tips_deal_success'));
$this->json->setAttr('data',$out_data);
$this->json->Send();
}else{
$this->json->setErr(10099, lang('tips_deal_fail'));
$this->json->Send();
}
}
// base64=>img
public function base64_to_img($base64_str,$us = 'img') {
// $base_img是获取到前端传递的src里面的值,也就是我们的数据流文件
if (strstr($base64_str,",")){
$base64_str_arr = explode(',',$base64_str);
$base64_str = $base64_str_arr[1];
}
// 设置文件路径和文件前缀名称
$folders = date('Ymd',time());
$path = "site_upload/".$us.'/'.$folders.'/';
if (!is_dir($path)){
@mkdir('./'.$path, 0777,true);
}
$prefix='rf_';
$output_file = $prefix.time().rand(100,999).'.jpg';
$img_path = $path.$output_file;
// 创建将数据流文件写入我们创建的文件内容中
$ifp = fopen( $img_path, "wb" );
fwrite( $ifp, base64_decode( $base64_str) );
fclose( $ifp );
// 输出文件
$qiniu = new QiniuImg();
$img = config('user.sf_host'). $img_path;
$ext = pathinfo($img, PATHINFO_EXTENSION);
$name = time() . mt_rand() . '.' . $ext;
$s = $qiniu->up($img, $name, config('user.qiniu.bucket'));
@unlink('/' .$img_path);
if($s){
return config('user.cdn_host') . $name;
} else {
return false;
}
}
内容总结
以上是互联网集市为您收集整理的PHP base64多图片上传全部内容,希望文章能够帮你解决PHP base64多图片上传所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。