// 多图片上传,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多图片上传的更多相关文章

  1. 微信支付特约商户进件中base64格式图片上传

    微信图片上传接口地址:https://api.mch.weixin.qq.com/v3/merchant/media/upload 1.上传方法 1 using HttpHandlerDemo; 2 ...

  2. base64转图片上传

    不成功,但是有一定的借鉴性 /** * @param base64Codes * 图片的base64编码 */ function sumitImageFile(base64Codes){ consol ...

  3. php base64编码图片上传七牛

    上网上找了好几个例子 都是自己写curl上传 感觉七牛这么多年了不应该sdk不提供一个方法 然后试 试 试 显示put 方式 上传上去 就是个字符串 后来换成文件上传方法 putFile 成了 不废话 ...

  4. JavaUtil 处理Base64的图片上传

    UploadImageBase64.java package com.lee.util; import java.io.File; import java.io.FileOutputStream; i ...

  5. ios base64图片上传失败问题

    今天做图片上传,后台用的是base64解密图片二进制文件,以前都是用表单上传来解决图片上传的,现在后台没有人改,所以研究下base64上传. 需要将图片base64加密,但是调用 [data base ...

  6. 利用cropper插件裁剪本地图片,然后将裁剪过后的base64图片上传至七牛云空间

    现在做的项目需要做一些图片处理,由于时间赶急,之前我便没有处理图片,直接将图片放在input[type=file]里面,以文件的形式提交给后台,这样做简直就是最低级的做法,之后各种问题便出来了,人物头 ...

  7. file标签 - 图片上传前预览 - FileReader & 网络图片转base64和文件流

    记得以前做网站时,曾经需要实现一个图片上传到服务器前,先预览的功能.当时用html的<input type="file"/>标签一直实现不了,最后舍弃了这个标签,使用了 ...

  8. tp5 base64 图片上传

    /** * 保存图片 */ public function uploads($value='') { // $file = base64_decode(request()->file('imag ...

  9. js实现图片上传预览功能,使用base64编码来实现

    实现图片上传的方法有很多,这里我们介绍比较简单的一种,使用base64对图片信息进行编码,然后直接将图片的base64信息存到数据库. 但是对于系统中需要上传的图片较多时并不建议采用这种方式,我们一般 ...

随机推荐

  1. 关于angularJS的$watch的 一些小用法

    $watch方法,它可以帮助我们在每个scope中监视其中的变量. $watch 单一的变量 对于普通的变量时,如数字,字符串等,直接如下写是可以监视到变量的变化,并执行相应的函数的. $scope. ...

  2. HTML5标签学习

    <abbr> 表示一个缩写形式,比如 "Inc."."etc.".通过对缩写词语进行标记,您就能够为浏览器.拼写检查程序.翻译系统以及搜索引擎分度器 ...

  3. Go语言 channel 管道 阻塞 死锁 经典问题

    建议阅读:14.2协程间的信道 问题:为什么代码1会报死锁的错误,而代码2不会报错? 代码1: package main import ( "fmt" ) func main() ...

  4. jQuery: Redirect to other URL

    <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> ...

  5. HYSBZ - 2005 莫比乌斯反演

    链接 对于gcd(i,j)的位置来说,对答案的贡献是2*(gcd(i,j)-1)+1,所以答案ans ans=Σ(1<=i<=n)(1<=j<=m)2*(gcd(i,j)-1) ...

  6. 开源分布式版本控制工具 —— Git 之旅

    Git 主张的分布式代码库与文件快照的设计思想,相对于传统 CVS.SVN 等集中式.文件差异式版本控制工具是一种挑战与颠覆.Git 带来了离线提交.轻量级分支等诸多便利.不过,也有人质疑 Git 的 ...

  7. iptables(一)iptables概念

    为什么想写这个系列呢?openstack中的安全组.防火墙都是用iptables实现,后面的规则我们如果想要完全理解,不懂iptables的话,或者不精通iptables的话,会看的比较吃力.所以下定 ...

  8. Android性能优化之数据库优化

    本文为性能优化的第一篇——数据库性能优化,原理适用于大部分数据库包括Sqlite.Mysql.Oracle.Sql server,详细介绍了索引(优缺点.分类.场景.规则)和事务,最后介绍了部分单独针 ...

  9. VS 2010 转到COFF期间失败。

    可能的原因是framework 版本不匹配,我卸载4.5,装4.0后就解决了

  10. 设置eclipse显示代码错误提示的

    http://jingyan.baidu.com/article/f3e34a128d79aff5ea65356c.html