PHP——base64的图片的另类上传方法
前言
这只是个暂行的办法,回头研究好七牛云的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的图片的另类上传方法的更多相关文章
- 小程序上传base64的图片,可上传多张
微信小程序上传图片转化为base64格式 clickimage: function(e) { var index = e.currentTarget.dataset.index; var count ...
- js获取base64格式图片预览上传并用php保存到本地服务器指定文件夹
html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- CANVAS运用-对图片的压缩上传(仅针对移动浏览器)
最近在移动端设计头像上传功能时,原本是以<input type="file">直接通过formData上传,然而实际使用情况是:对于过大的图片(高像素手机所拍摄的照片等 ...
- 使用ajax上传图片,支持图片即时浏览,支持js图片压缩后上传给服务器
使用ajax上传图片,支持图片即时浏览,支持js图片压缩后上传给服务器 ajax上传主要使用了 var reader = new FileReader() 此方法 js图片压缩主要是利用canvas进 ...
- 【Web】前端裁剪图片,并上传到服务器(Jcrop+canvas)
web网站中常常有的功能:上传头像.上传封面等:一般图片都有一定的比例限制,所以需要前端在上传图片时,进行裁剪,并把裁剪后的图片进行上传. 本例采用Jcrop插件实现裁剪效果,canvas裁剪图片,并 ...
- 从web编辑器 UEditor 中单独提取图片上传,包含多图片单图片上传以及在线涂鸦功能
UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码.(抄的...) UEditor是非常好用的富文 ...
- 百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程之更改图片和附件上传路径
本文是接上一篇博客,如果有疑问请先阅读上一篇:百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程 默认UEditor上传图片的路径是,编辑器包目录里面的net目录下 下面就演示如 ...
- 基于h5的图片无刷新上传(uploadifive)
基于h5的图片无刷新上传(uploadifive) uploadifive简介 了解uploadify之前,首先了解来一下什么是uploadify,uploadfy官网,uploadify和uploa ...
- HTML5实现图片文件异步上传
原文:HTML5实现图片文件异步上传 利用HTML5的新特点做文件异步上传非常简单方便,本文主要展示JS部分,html结构.下面的代码并未使用第三发库,如果有参照,请注意一些未展现出来的代码片段.我这 ...
随机推荐
- 几种事务的隔离级别,InnoDB如何实现?
事务ACID特性,其中I代表隔离性(Isolation). 什么是事务的隔离性? 隔离性是指,多个用户的并发事务访问同一个数据库时,一个用户的事务不应该被其他用户的事务干扰,多个并发事务之间要相互隔离 ...
- Centos 7安装RabbitMQ 3.7.8版本(单机版)-不使用RPM
RabbitMQ是目前非常热门的消息中间件,凭借其高可靠.高扩展.高可用及丰富的功能特性:TTL.死信队列.延迟队列.优先级队列.消息持久化.镜像队列. 消息中间件是指利用高效可靠的消息传递机制进行与 ...
- 05 Django REST Framework 分页
01-分页模式 rest framework中提供了三种分页模式: from rest_framework.pagination import PageNumberPagination, LimitO ...
- 学习用Node.js和Elasticsearch构建搜索引擎(2):一些检索命令
1.Elasticsearch搜索数据有两种方式. 一种方式是通过REST请求URI,发送搜索参数: 另一种是通过REST请求体,发送搜索参数.而请求体允许你包含更容易表达和可阅读的JSON格式.这个 ...
- H5 video标签的第二种格式
36-video标签的第二种格式 2.第二种格式存在的意义: 由于视频数据非常非常的重要, 所以五大浏览器厂商都不愿意支持别人的视频格式, 所以导致了没有一种视频格式是所有浏览器都支持的 这个时候W3 ...
- hdu 1730 Nim博弈
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=1730 Nim博弈为:n堆石子,每个人可以在任意一堆中取任意数量的石子 n个数异或值为0就后手赢,否则先 ...
- c++入门之类与内存
类作为c++编程的核心,自然我们十分关注其内存分配问题. 这里的这个主题中,我们关注了静态成员,new,delete.还有构造函数和析构函数. 先上代码: # include "iostre ...
- PHP实用代码片段(二)
1. 转换 URL:从字符串变成超链接 如果你正在开发论坛,博客或者是一个常规的表单提交,很多时候都要用户访问一个网站.使用这个函数,URL 字符串就可以自动的转换为超链接. function mak ...
- Palindromic characteristics CodeForces - 835D (区间DP,预处理回文串问题)
Palindromic characteristics of string s with length |s| is a sequence of |s|integers, where k-th num ...
- DelegatingFilterProxy作用浅析
<filter> <filter-name>secondDomainFilter</filter-name> <filter-class>org.spr ...