zoukankan      html  css  js  c++  java
  • TP3.2 图片上传及缩略图

    基于TP自带的上传文件的类, Think/Upload.class.php

    下面是上传的具体方法

    /**
     * 图片上传处理
     * @param [String] $path [保存文件夹名称]
     * @param [String] $thumbWidth [缩略图宽度]
     * @param [String] $thumbHeight [缩略图高度]
     * @return [Array] [图片上传信息]
     */
    
    function _upload($path,$thumbWidth = '' , $thumbHeight = '') {
        $obj = new ThinkUpload();// 实例化上传类
        $obj->maxSize = C('UPLOAD_MAX_SIZE') ;// 设置附件上传大小
        $obj->savePath =C('UPLOAD_PATH').$path.'/'; // 设置附件上传目录
        $obj->exts =  C('UPLOAD_EXTS');// 设置附件上传类型
        $obj->saveName = array('uniqid','');//文件名规则
        $obj->replace = true;//存在同名文件覆盖
        $obj->autoSub = true;//使用子目录保存
        $obj->subName  = array('date','Ymd');//子目录创建规则,
        $info = $obj->upload();
    //    return $info;
        if(!$info) {
            return array('status' =>0, 'msg'=> $obj->getError() );
        }else{
            if($info){    //生成缩略图
    
                $image = new ThinkImage();
                foreach($info as $file) {
                    $thumb_file = C('UPLOAD_PATH')  . $file['savepath'] . $file['savename'];
                    $save_path =  C('UPLOAD_PATH')  . $file['savepath'] . 'mini_' . $file['savename'];  //保存缩略图的规则
                    $image->open( $thumb_file )->thumb($thumbWidth,$thumbHeight,ThinkImage::IMAGE_THUMB_FILLED)->save($save_path);
                    return array(
                        'status' => 1,
                        'savepath' => $file['savepath'],
                        'savename' => $file['savename'],
                        'pic_path' => $file['savepath'] . $file['savename'],
                        'mini_pic' => $file['savepath'] . 'mini_' .$file['savename']
                    );
    //                @unlink($thumb_file); //上传生成缩略图以后删除源文件
                }
            }else{
                foreach($info as $file) {
                    return array(
                        'status' => 1,
                        'savepath' => $file['savepath'],
                        'savename' => $file['savename'],
                        'pic_path' => $file['savepath'].$file['savename']
                    );
                }
            }
        }
    }

    在配置文件中设置相关属性

    //图片上传
        'UPLOAD_MAX_SIZE' => 13058176, //最大上传大小
        'UPLOAD_PATH' => './Uploads/', //文件上传保存路径
        //'UPLOAD_PATH' => './', //文件上传保存路径
        'UPLOAD_EXTS' => array('jpg','jpeg','gif','png'),

    上传:

      1、设置表单的enctype属性  

      2、根目录创建 Uploads 目录 

      3、调用方法,传参(保存的路径,宽度,高度)

    $upload = _upload('Content','300','300');  //文件上传信息及缩略图
    

    完成后看下打印效果

    文件路径

    mini_XXXXXXX.jpg 缩略图完成

    至此上传文件及缩略图就完成了 

  • 相关阅读:
    GDAL指定自定义的金字塔目录
    同一个脚本在SQLPLUS和SQLDEV上的不同
    【LeetCode-面试算法经典-Java实现】【062-Unique Paths(唯一路径)】
    unity3d的playmaker插件使用教程,三、对象出入触发,声音播放
    MapReduce实现矩阵乘法
    Nginx+Tomcat搭建高性能负载均衡集群
    怎么去掉Xcodeproject中的某种类型的警告 Implicit conversion loses integer precision: 'NSInteger' (aka 'long') to 'int32
    <html>
    实战c++中的vector系列--vector&lt;unique_ptr&lt;&gt;&gt;初始化(全部权转移)
    [Mac] mac linux 多线程下载利器 axel
  • 原文地址:https://www.cnblogs.com/csd97/p/8079292.html
Copyright © 2011-2022 走看看