PHP——base64的图片的另类上传方法

时间:2022-08-24 00:23:50

前言

这只是个暂行的办法,回头研究好七牛云的base64上传或者vue的文件上传后还是要进行更改的

想法是这样的,既然前端只能穿base64的那就传base64的然后转为文件上传到七牛云后再删除

本地的文件。

代码

后缀统一定死了,这个是可以写活的,想写活的话就再传个文件名称就好了,通过php的获取文件信息函数或者截取函数都是可以实现获得后缀的,因为这个方法只是暂行的后面还会修改,所以我就先写死了

<?php
namespace app\api\controller;
use think\Db;
use think\controller;
use app\api\controller\User;
use Qiniu\Qiniu;
use think\Request;
/**
*
* @author wangyanyan
*
*/
class Userprize extends User
{ public function upload()
{ $base_img = input('imgbase/s','');
$base_str = explode(',', $base_img);
$img = base64_decode($base_str['1']);
$time = time();
$uid = $this->_uid;
$imgName = $time.'-'.$uid;
$imgPath = './public/uploads/'.$imgName.'.jpg';
$imgSize = file_put_contents($imgPath, $img);
// 要上传图片的本地路径
$filePath = $imgPath;
$qiniu_config = db('my_config')->where(array('name'=>'qiniu'))->value('data');
if($qiniu_config){
$qiniu_config = json_decode($qiniu_config);
}
$config = array(
'domain'=>$qiniu_config->domain,
'bucket'=>$qiniu_config->bucket,
'accesskey'=>$qiniu_config->accesskey,
'secretkey'=>$qiniu_config->secretkey,
);
$qiniu = new Qiniu($config);
$qiniu->token();
//$ext = pathinfo($file->getInfo('name'), PATHINFO_EXTENSION); //后缀
$ext = '.jpg';
$result = $qiniu->uploadOne($filePath,'',null,$eaxt); //这里是Form表单提交
if ($result) {
unlink($imgPath);
$data = $qiniu_config->domain.$result['key'];
$this->apiReturn(1, $data);
} else {
$this->apiReturn(0,"系统开小差了哦~");
}
}
}

PHP——base64的图片的另类上传方法的更多相关文章

  1. 小程序上传base64的图片,可上传多张

    微信小程序上传图片转化为base64格式 clickimage: function(e) { var index = e.currentTarget.dataset.index; var count ...

  2. js获取base64格式图片预览上传并用php保存到本地服务器指定文件夹

    html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  3. CANVAS运用-对图片的压缩上传(仅针对移动浏览器)

    最近在移动端设计头像上传功能时,原本是以<input type="file">直接通过formData上传,然而实际使用情况是:对于过大的图片(高像素手机所拍摄的照片等 ...

  4. 使用ajax上传图片,支持图片即时浏览,支持js图片压缩后上传给服务器

    使用ajax上传图片,支持图片即时浏览,支持js图片压缩后上传给服务器 ajax上传主要使用了 var reader = new FileReader() 此方法 js图片压缩主要是利用canvas进 ...

  5. 【Web】前端裁剪图片,并上传到服务器(Jcrop&plus;canvas)

    web网站中常常有的功能:上传头像.上传封面等:一般图片都有一定的比例限制,所以需要前端在上传图片时,进行裁剪,并把裁剪后的图片进行上传. 本例采用Jcrop插件实现裁剪效果,canvas裁剪图片,并 ...

  6. 从web编辑器 UEditor 中单独提取图片上传,包含多图片单图片上传以及在线涂鸦功能

    UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许*使用和修改代码.(抄的...) UEditor是非常好用的富文 ...

  7. 百度在线编辑器UEditor&lpar;v1&period;3&period;6&rpar; &period;net环境下详细配置教程之更改图片和附件上传路径

    本文是接上一篇博客,如果有疑问请先阅读上一篇:百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程 默认UEditor上传图片的路径是,编辑器包目录里面的net目录下 下面就演示如 ...

  8. 基于h5的图片无刷新上传&lpar;uploadifive&rpar;

    基于h5的图片无刷新上传(uploadifive) uploadifive简介 了解uploadify之前,首先了解来一下什么是uploadify,uploadfy官网,uploadify和uploa ...

  9. HTML5实现图片文件异步上传

    原文:HTML5实现图片文件异步上传 利用HTML5的新特点做文件异步上传非常简单方便,本文主要展示JS部分,html结构.下面的代码并未使用第三发库,如果有参照,请注意一些未展现出来的代码片段.我这 ...

随机推荐

  1. 高可用mysql之MHA源码剖析

    * MHA的整个故障(离线)切换过程 - 检测主库的状态,确认是否崩溃. - 确认服务崩溃,保存binlog,推送到主控机,并可以强制关闭主库避免脑裂. - 找出数据最新的从库(也就是read_mas ...

  2. C&num; DataSet

    一.基本概念 DataSet是ADO.NET的中心概念.可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合.所谓独立,就是说,即使断开数据链路,或者关闭数据库,Dat ...

  3. MyBatis总结(一)

    一.创建测试项目工程 二.导包(一个myBatis所需的包,以及一个数据库操作的包) 三.创建实体类 四.配置文件的建立(最佳命名为(SqlMapConfig.xml)) <?xml versi ...

  4. xadmin 自定义视图在uwsgi部署时的一坑

    比如修改登录页的template,代码如下: xadmin.site.register(xadmin.views.LoginView, login_template="card_pool/s ...

  5. ORCL&lowbar;INSTALL&lowbar;WIN10

    0.相关问题 INS-13001环境不满足最低要求: Win10下安装Oracle11g 不满足配置解决方法如下: 原因:Oracle 在发布 11g时,Winodws 10还没有发布.所以Oracl ...

  6. tomcat解压版安装(摘自网络)

    配置Tomcat[解压版] 选择解压版的Tomcat的理由是可以让我们使用多个Tomcat,但是配置上就会出现一些问题,需要我们手动进行更改配置.我的Tomcat版本是:apache-tomcat-6 ...

  7. drupal7 boost模块为登录用户提供缓存

    这段时间研究Drupal7的缓存相关,看了好多资料,都提到了boost和authcache两个模块,今天来说一下boost. 具体的下载安装,配置等,官网写的听清楚,boost模块地址 ,安装配置方法 ...

  8. C&plus;&plus;Primer学习——动态内存

    静态内存:用来保存static 栈内存:保存非static 智能指针: shared_ptr:允许多个指针指向一个对象 unique_ptr:独占所指对象 weak_ptr:一种弱引用,指向share ...

  9. hibernate学习笔记第七天:二级缓存和session管理

    二级缓存配置 1.导入ehcache对应的三个jar包 ehcache/*.jar 2.配置hibernate使用二级缓存 2.1设置当前环境开始二级缓存的使用 <property name=& ...

  10. jquery 動畫

    animate({param},speed,callback)/animate({param},speed)/animate({param}) param表示css屬性:屬性名必須是camel標識法: ...