博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Thinkphp+Uploadify
阅读量:7250 次
发布时间:2019-06-29

本文共 3849 字,大约阅读时间需要 12 分钟。

1、先下载插件(下载地址http://files.cnblogs.com/Tongjanghu/Uploadify.rar)

2、引入文件

  Jq要在插件之前

3、form表单,现在已经不是直接上传文件了,而是上传文件路径,因为Uploadify已经把文件上传了。我们只需要在php端返回相应的地址就好,在把返回的地址放到隐藏域中,然后提交的时候就是提交文件路径了

__PUBLIC__/Images/noface.gif
__ROOT__/Uploads{$user.face180}" width="180" height="180" id="face_img" />

4、代码

js

//头像上传Uploadify插件    $('#face').uploadify({        swf             : '__PUBLIC__/Uploadify/uploadify.swf',    //flash插件地址        uploader        : "{:U('Comment/uploadFace')}",        //提交到哪里(见下面php代码)        width           : 120,                       //上传按钮宽度(插件的CSS自带鼠标移入偏移)        height          : 30,                       //上传按钮高度(同上)        buttonImage     : '__PUBLIC__/Uploadify/browse-btn.png',   //上传按钮的地址        fileTypeDesc    : 'Image File',                  //上传文件的类型        fileTypeExts    : '*.jpeg; *.jpg; *.gif; *.png',       //上传文件的允许后缀        onUploadSuccess : function(file,data,response){         //回调函数            eval('var data=' + data);                  //把php端回调的数据执行为json对象,以便进一步操作            if(data.status){                $('#face_img').attr('src','__ROOT__/Uploads'+data.path.max);                $('input[name=face180]').val(data.path.max);                $('input[name=face80]').val(data.path.medium);                $('input[name=face50]').val(data.path.mini);            }else{                alert(data.msg);            }        }    });

php

/**     * 头像上传     */    public function uploadFace(){        if (!IS_POST) {            E('页面不存在!');        }        $upload = $this->_upload('Face',1);        echo json_encode($upload);    }        /**     * 图片上传处理     * @param string $path   保存文件路径     * @param bool   $thumb  是否生成缩略图(0:不生成,1:生成)     * @return array         图片上传后的信息     */    private function _upload($path,$thumb=0){        $obj = new \Think\Upload();        $obj->maxSize        = C('UPLOAD_MAX_SIZE');     //允许上传的最大大小        $obj->savePath       = C('UPLOAD_PATH').$path . '/'; //文件上传的保存路径(相对于根路径)        $obj->saveName       = array('uniqid','');                 //文件名规则:唯一        $obj->replace        = true;                     //同名文件覆盖        $obj->exts           = C('UPLOAD_EXTS');         //允许上传文件的后缀        $obj->autoSub        = true;                     //使用子目录      //$obj->subName        = array('date','Y_m');      //以日期(格式为Y_m)为子目录        $obj->subName        = 'get_uid';                //用自定义函数获取用户id,以用户id为文件夹        $msg = $obj->upload();        if(!$msg){            return array('status' =>0, 'msg'=>$obj->getError());        //上传原图出错返回        }  else {            if ($thumb) {                $original    = new \Think\Image();                $savepath    = $msg['Filedata']['savepath'];                $savename    = $msg['Filedata']['savename'];                 //组合缩略图路径                $max_path    = substr($savepath.'max_'.$savename,1);                $medium_path = substr($savepath.'medium_'.$savename,1);                $mini_path   = substr($savepath.'mini_'.$savename,1);                //打开原图                $original->open('Uploads'.substr($msg['Filedata']['savepath'].$msg['Filedata']['savename'],1));                //依次生成180*180,80*80,50*50的缩略图                $original->thumb(180, 180)->save('Uploads'.$max_path);                  $original->thumb(80, 80)->save('Uploads'.$medium_path);                $original->thumb(50, 50)->save('Uploads'.$mini_path);                                return array(                    'status'=>1,                    'path'=>array(                        'max'=>$max_path,                        'medium'=>$medium_path,                        'mini'=>$mini_path                    )                );            }        }    }

 5、现在form表单就可以提交哪些隐藏域中的地址了(存入数据库)。

转载于:https://www.cnblogs.com/Tongjanghu/p/4152608.html

你可能感兴趣的文章
从程序员到技术领导者
查看>>
squid的配置及应用
查看>>
Linux的基本配置
查看>>
java语言基础
查看>>
通过weblogic自带脚本正常关闭受管理服务器方法
查看>>
关于最近很火的安卓stagefright漏洞
查看>>
iOS开发那些事-iOS网络编程同步GET方法请求编程
查看>>
pycharm,vim,items2常用快捷键
查看>>
Flask blueprint蓝图按功能模块化架构实例
查看>>
数据支撑环境的改造
查看>>
ifconfig 命令用来查看和配置网络设备
查看>>
用 netstat 查看 TCP 网络状态详解
查看>>
JVM 调优总结:一些概念
查看>>
HTML5:使用Lawnchair库存储JSON
查看>>
如何设计秒杀系统
查看>>
屏蔽USB设备的几种方法
查看>>
zen cart 特价商品列表页中加入排序选择
查看>>
配置Pycharm4.5.4调试edX Devstack
查看>>
Nginx+Tomcat负载均衡配置
查看>>
symbol AP5131重置密码和恢复出厂设置
查看>>