ci上传图片
o_upload.php
<?php
/**
* Created by PhpStorm.
* User: brady
* Date: 2018/3/15
* Time: 14:10
*/
class O_upload extends MY_Model
{
protected $table = ''; public function __construct()
{
parent::__construct();
} /**
* @param $dir 图片路径,以upload下面为准 比如 admin 前后都不要 /
* @param $base64_img base64位的图片
* @param int $width 缩略图片
* @return string
* @throws Exception
*/
public function do_upload($dir,$base64_img,$width=300)
{
$up_dir = './upload/'.$dir."/";//存放在当前目录的upload文件夹下
if(!file_exists($up_dir)){
mkdir($up_dir,0777);
}
if(preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_img, $result)){
$type = $result[2];
if(in_array($type,array('pjpeg','jpeg','jpg','gif','bmp','png'))){
$new_file = $up_dir.date('YmdHis_').rand(1000,9999).'.'.$type;
if(file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_img)))){
$last_file = $this->resize_img($new_file,$width);
unlink($new_file);
$img_path = substr($last_file,1);
return $img_path;
}else{
throw new Exception("图片上传失败"); }
}else{
//文件类型错误
throw new Exception('图片上传类型错误');
} }else{
//文件错误
throw new Exception("文件错误");
}
} public function resize_img($file,$size)
{
$config['image_library'] = 'gd2';
$config['source_image'] = $file;
$config['create_thumb'] = TRUE;
$config['thumb_marker'] = "_".$size;
$config['maintain_ratio'] = TRUE;
$config['width'] = $size; $this->load->library('image_lib', $config); $this->image_lib->resize();
if ( ! $this->image_lib->resize()){
throw new Exception($this->image_lib->display_errors());
} else {
$type = pathinfo($file,PATHINFO_EXTENSION );
$len = strlen($type) + 1;
$last_file = substr($file,0,-$len);
return $last_file."_".$size.".".$type;
}
}
}
image.php
<?php class Images extends MY_Controller
{
public function __construct()
{
parent::__construct();
} public function upload()
{
$this->load->model("O_upload");
try{
$img_path = $this->O_upload->do_upload('article_list');
$this->success_response("上传成功");
}catch(Exception $e){
$this->error_response($e->getMessage());
}
} /**
* 上传头像
*/
public function upload_face()
{ }
}
ci上传图片的更多相关文章
- CI框架+Umeditor上传图片配置信息
Umeditor提供了一个上传文件通用的类Uploader.class.php, 首先将Uploader.class.php类放入CI框架的libraries目录下更名为Myuploader.php然 ...
- 初学后台框架总结篇二——快速了解CI框架
一.下载CI框架并安装,这里放置一张自己的项目目录结构图 目录框架搭建好之后开始将自己的项目与框架融合 二.更改相关配置 1.用任何文本编辑器打开 application/config/config. ...
- PHP使用七牛云存储之图片的上传、下载、303重定向教程,CI框架实例
网上关于七牛云存储的教程除了官网上的API文档,其他的资料太少了.研究了下API之后,现在已经能实现图片的上传和下载及上传之后的重定向. http://blog.csdn.net/cqcre/arti ...
- Ajaxupload插件超级简单使用(php的ci框架)
Ajaxupload简单使用 友情提示:1.蓝色文字为必修改内容.2.#字符后面是解释该代码段的主要内容 备注: 该实例是用php的ci框架直接接收图片并 ...
- uploadify上传图片的类型错误的解决办法
大家在做开发的过程中,相信很多人都会使用到uploadify插件来上传图片,但是这个插件也有不完美的地方. 我曾多次遇到过这样一个问题:上传的图片类型明明是没有问题的,但是在上传的时候总是会报错:图片 ...
- 百度ueditor上传图片时如何设置默认宽高度
百度ueditor上传图片时如何设置默认宽高度 一.总结 一句话总结:直接css或者js里面限制一下就好,可以用html全局限制一下图片的最大高度 直接css或者js里面限制一下就好,可以用html全 ...
- ****CI和UEditor集成
百度UEditor是一款比较常用编辑器 下载地址: http://ueditor.baidu.com/website/download.html 1.在assets目录下建立ueditor文件夹,把下 ...
- CI(2.2) 配置 jquery的上传插件Uploadify(v3.2) 上传文件
1.下载uploadify, 我的是v3.2 2.模板页面引入: <base href='{base_url()}' /> <script type="text/jav ...
- php CI框架基础知识
一. CI框架的MVC导图 二. CI框架目录文件介绍 (1)index.php 单入口 整个框架对外暴露的唯一访问文件 (2)application 应用文件(放置用户信息,用户 ...
随机推荐
- Mac配置MySql
MySql在Mac下的情况如下: 首先,我们进入MySql的官网下载MySql(直接点击即可),打开之后便是这样. 我们点击红色方框标记的内容,之后我等待下载完成. 下载完成之后,我们需要点点,注意一 ...
- 20155215 2016-2017-2 《Java程序设计》第4周学习总结
20155215 2016-2017-2 <Java程序设计>第X周学习总结 教材学习内容总结 第六章 继承,避免多个类间重复定义共同行为.子类继承父类,再扩充(extends)其他行为. ...
- 【LG4169】[Violet]天使玩偶/SJY摆棋子
[LG4169][Violet]天使玩偶/SJY摆棋子 题面 洛谷 题解 至于\(cdq\)分治的解法,以前写过 \(kdTree\)的解法好像还\(sb\)一些 就是记一下子树的横.纵坐标最值然后求 ...
- 存一下emacs配置
(global-set-key [f9] 'compile-file)(global-set-key [f10] 'gud-gdb)(global-set-key (kbd "C-z&quo ...
- 六、Django之Template
一.Template由来 1.任何前端页面的改动都和后端有关: 2.前端HTML和后端python分开能让网站更加清晰: 3.前后端分离的趋势下,专业的事交给专业的人做. 二.Django中的temp ...
- TensorFlow(实战深度学习框架)----深层神经网络(第四章)
深层神经网络可以解决部分浅层神经网络解决不了的问题. 神经网络的优化目标-----损失函数 深度学习:一类通过多层非线性变化对高复杂性数据建模算法的合集.(两个重要的特性:多层和非线性) 线性模型的最 ...
- 学习HTML 第三节.接近正题:HTML样式-CSS级联样式表
CSS (Cascading Style Sheets)级联样式表 内联样式 内联样式- 在HTML元素中使用"style" 属性 使用内联样式的方法是在相关的标签中使用样式属性. ...
- centos7 python2.7.5 升级python3.6.4
(转)Linux Centos7 升级python2至python3 - 依然范儿特西的文章 - 知乎 https://zhuanlan.zhihu.com/p/33660059 1 查看python ...
- Linux 安装Redis<准备>(使用Mac远程访问)
阅读本文需要一定的Linux基础 一 Redis简介 redis是用c语言编写的一款开源的高性能键值对(key-value)数据库 它通过提供多种键值数据类型来适应不同场景下的存储需求 二 Redis ...
- String、StringBuffer、StringBuilder有什么区别
区别 先说说String和StringBuffer/StringBuilder: String是标准的不可变类,是一个字符串常量池,并且声明的对象在方法中是唯一存在的. StringBuffer/St ...