前言

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

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

本地的文件。

代码

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

  1. <?php
  2. namespace app\api\controller;
  3. use think\Db;
  4. use think\controller;
  5. use app\api\controller\User;
  6. use Qiniu\Qiniu;
  7. use think\Request;
  8. /**
  9. *
  10. * @author wangyanyan
  11. *
  12. */
  13. class Userprize extends User
  14. {
  15.  
  16. public function upload()
  17. {
  18.  
  19. $base_img = input('imgbase/s','');
  20. $base_str = explode(',', $base_img);
  21. $img = base64_decode($base_str['1']);
  22. $time = time();
  23. $uid = $this->_uid;
  24. $imgName = $time.'-'.$uid;
  25. $imgPath = './public/uploads/'.$imgName.'.jpg';
  26. $imgSize = file_put_contents($imgPath, $img);
  27. // 要上传图片的本地路径
  28. $filePath = $imgPath;
  29. $qiniu_config = db('my_config')->where(array('name'=>'qiniu'))->value('data');
  30. if($qiniu_config){
  31. $qiniu_config = json_decode($qiniu_config);
  32. }
  33. $config = array(
  34. 'domain'=>$qiniu_config->domain,
  35. 'bucket'=>$qiniu_config->bucket,
  36. 'accesskey'=>$qiniu_config->accesskey,
  37. 'secretkey'=>$qiniu_config->secretkey,
  38. );
  39. $qiniu = new Qiniu($config);
  40. $qiniu->token();
  41. //$ext = pathinfo($file->getInfo('name'), PATHINFO_EXTENSION); //后缀
  42. $ext = '.jpg';
  43. $result = $qiniu->uploadOne($filePath,'',null,$eaxt); //这里是Form表单提交
  44. if ($result) {
  45. unlink($imgPath);
  46. $data = $qiniu_config->domain.$result['key'];
  47. $this->apiReturn(1, $data);
  48. } else {
  49. $this->apiReturn(0,"系统开小差了哦~");
  50. }
  51. }
  52. }

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+canvas)

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

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

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

  7. 百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程之更改图片和附件上传路径

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

  8. 基于h5的图片无刷新上传(uploadifive)

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

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

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

随机推荐

  1. Windows Community Toolkit 3.0 - Gaze Interaction

    概述 Gaze Input & Tracking - 也就是视觉输入和跟踪,是一种和鼠标/触摸屏输入非常不一样的交互方式,利用人类眼球的识别和眼球方向角度的跟踪,来判断人眼的目标和意图,从而非 ...

  2. Acceleration for ML 论文导读

    Energy efficient parallel neuromorphic architectures with approximate arithmetic on FPGA Motivation ...

  3. 阿里字体css代码引入方法

    1.第一步,选择自己想要的图标字体,添加入库. 2.选择下载代码. 3.我们可以发现,有如下的代码被下载下来了. 4.我们选择iconfont.css放到自己的文件夹中. 5.然后我们根据下载下来ht ...

  4. XGBoost模型的参数调优

    XGBoost算法在实际运行的过程中,可以通过以下要点进行参数调优: (1)添加正则项: 在模型参数中添加正则项,或加大正则项的惩罚力度,即通过调整加权参数,从而避免模型出现过拟合的情况. (2)控制 ...

  5. R语言绘制茎叶图

    与直方图相比,茎叶图更能细致的看出数据分布情况! 代码: > x<-c(25, 45, 50, 54, 55, 61, 64, 68, 72, 75, 75,+ 78, 79, 81, 8 ...

  6. 利用php查看某个服务的进程数

    查看进程就是使用ps命令而已,只不顾ps的参数太多了. 使用php查询的话,必须要开启几个函数(可以执行外部程序的函数),参考官网:http://php.net/manual/zh/book.exec ...

  7. 牛客OI周赛8-普及组

    https://ac.nowcoder.com/acm/contest/543#question A. 代码: #include <bits/stdc++.h> using namespa ...

  8. tomcat启动的时候报错Failed to start component

    在idea中运行tomcat时,遇到异常,异常信息如下: 16-Jan-2018 16:33:37.325 信息 [localhost-startStop-1] org.apache.catalina ...

  9. Redis 安装学习

    Linux下下载安装redis https://redis.io/download tar -zvxf redisxxx cd redisxxxx make  ---进行安装 vim ~.bash_p ...

  10. CentOS7下Nginx搭建反向代理,并使用redis保存session

    1.启动两个tomcat,端口分别为8080,8081 2.配置nginx,vim /usr/local/nginx/conf/nginx.conf 添加如下配置: 3.启动nginx或热加载 启动: ...