zoukankan      html  css  js  c++  java
  • 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()
        {
    
        }
    }
    
  • 相关阅读:
    计算一个整数的二进制中1的个数
    Java 操作 EXCEL
    WIN7 64位配置Oracle SQL Developer工具
    phpstrom+xdebug调试PHP代码
    Zend Server安装后首次运行就出现Internal Server Error的解决
    在C语言中使用scanf语句时遇到的问题总结
    ElementUI中scrollbar的使用解析
    前端模拟手机屏幕图片渐隐渐现效果实现
    谈谈怎么学习编程?
    underScore学习1:匿名函数中call(this)的作用
  • 原文地址:https://www.cnblogs.com/brady-wang/p/9058604.html
Copyright © 2011-2022 走看看