zoukankan      html  css  js  c++  java
  • thinkphp3.2.3多图上传并且生成多张缩略图

    html部分

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>图片上传</title>
    </head>
    <body>
    <form enctype="multipart/form-data" action="__URL__/upload" method="post">
        <input type="file" name="photo[]" multiple>
        <input type="submit" value="提交">
    </form>
    </body>
    </html>

    php代码

    <?php
    namespace HomeController;
    use ThinkController;

    class IndexController extends Controller {
        public function upload() {
            $upload = new ThinkUploadFile();// 实例化上传类
            $upload->maxSize = 3000000 ;// 设置附件上传大小  C('UPLOAD_SIZE');
            $upload->savePath = './Uploads/' . 'thumb/'; // 设置附件上传目录
            $upload->allowExts = array('jpg', 'gif', 'png', 'jpeg'); // 设置附件上传类型
            $upload->saveRule = 'uniqid';
            $upload->uploadReplace = true; //是否存在同名文件是否覆盖
            
            $upload->thumb = true; //是否对上传文件进行缩略图处理
            $upload->thumbMaxWidth = '300,600'; //缩略图处理宽度
            $upload->thumbMaxHeight = '200,400'; //缩略图处理高度
            $upload->thumbPrefix = 'm_,s_';  //生产2张缩略图
            $upload->thumbPath = './Uploads/' . 'thumb/' . date('Ymd', time()) . '/'; //缩略图保存路径
             
            $upload->thumbRemoveOrigin = true; //上传图片后删除原图片
            $upload->autoSub = true; //是否使用子目录保存图片
            $upload->subType = 'date'; //子目录保存规则
            $upload->dateFormat = 'Ymd'; //子目录保存规则为date时时间格式
            
            if (!$upload->upload()) {// 上传错误提示错误信息
                $this->error($upload->getError());
            } else {

         // 上传成功 获取上传文件信息
                $info = $upload->getUploadFileInfo();
                foreach ( $info as $file ) {

           // 保存当前数据对象
                    $model = M ( 'web_img' );
                    $picname = $file['savename'];
                    $picname = explode('/', $picname);
                    $url1 = $picname[0] . '/' . 'm_' . $picname[1];
                    $url2 = $picname[0] . '/' . 's_' . $picname[1];
                    $temp["face"] = $file['savepath'].$url2;    //大缩略图
                    $temp["thumb"] = $file['savepath'].$url1;   //小缩略图
                    $temp["Addtime"] = date("Y/m/d H:i:s");
                    $save=$model->add ( $temp );
                }
                if($save){
                    $this->success('上传成功!');
                }
            }
             
        }
    }

    多图上传几个注意点:

    1、<form enctype="multipart/form-data">
     
    2、<input type="file" name="photo[]" multiple>
     
    3、注意thinkphp3.2.2并没有UploadFile,UploadImage 类 
    要自己加入: 把他们放到ThinkPHPLibraryThink目录下     下载我百度网盘点击下载:UploadFile,UploadImage 类下载
  • 相关阅读:
    什么叫线程安全?servlet 是线程安全吗?
    SynchronizedMap 和 ConcurrentHashMap 有什么区别?
    CopyOnWriteArrayList 可以用于什么应用场景?
    乐观锁和悲观锁的理解及如何实现,有哪些实现方式?
    当一个线程进入某个对象的一个 synchronized 的实例方 法后,其它线程是否可进入此对象的其它方法?
    一个线程运行时发生异常会怎样?
    用 Java 实现阻塞队列 ?
    在 java 中 wait 和 sleep 方法的不同?
    为什么代码会重排序?
    volatile 有什么用?能否用一句话说明下 volatile 的应用场景?
  • 原文地址:https://www.cnblogs.com/lonnie/p/6668448.html
Copyright © 2011-2022 走看看