Thinkphp+Uploadify

1、先下载插件

2、引入文件

  Jq要在插件之前

<link rel="stylesheet" href="__PUBLIC__/Uploadify/uploadify.css"/>
<script type="text/javascript" src=‘__PUBLIC__/Js/jquery-1.7.2.min.js‘></script>
<script type="text/javascript" src=‘__PUBLIC__/Uploadify/jquery.uploadify.min.js‘></script>

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

<form action="{:U(editFace)}" method=‘post‘>
    <div class=‘edit-face‘>
    <img src="<if condition=‘$user.face180 eq ""‘>__PUBLIC__/Images/noface.gif<else />__ROOT__/Uploads{$user.face180}</if>" width="180" height="180" id="face_img" />
    <p style="text-align: center;"><input type="file" name="face" id="face"></p>
    <p>
        <input type="hidden" value=‘‘ name="face180">
        <input type="hidden" value=‘‘ name="face80">
        <input type="hidden" value=‘‘ name="face50">
        <input type="submit" value=‘保存修改‘ class=‘edit-sub‘/>
    </p>
    </div>
</form>

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
                    )
                );
            }
        }
    }
时间: 2024-10-10 16:11:33

Thinkphp+Uploadify的相关文章

ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据

前端HTML+JQuery  备注Jquery需要1.x版本,不能用2.x版本 1.引入必要文件及上传input <load file="__PUBLIC__/js/jquery-1.11.3.min.js" /> <load file="__PUBLIC__/uploadify/jquery.uploadify.min.js" /> <load file="__PUBLIC__/uploadify/uploadify.css

php thinkphp uploadify

模板文件: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

ThinkPHP模版引擎之变量输出具体解释

ThinkPHP模版引擎之变量输出具体解释 使用ThinkPHP开发有一定时间了,今日对ThinkPHP的模板引擎变量解析深入了解了一下.做出一些总结,分享给大家供大家參考. 详细分析例如以下: 我们已经知道了在Action中使用assign方法能够给模板变量赋值,赋值后怎么在模板文件里输出变量的值呢? 假设我们在Action中赋值了一个name模板变量: $name = 'ThinkPHP'; $this->assign('name',$name); 使用内置的模板引擎输出变量,仅仅须要在模版

《PHP框架ThinkPHP学习》系列技术文章整理收藏

<PHP框架ThinkPHP学习>系列技术文章整理收藏 1修改ThinkPHP缓存为Memcache的方法 2Thinkphp实现MySQL读写分离操作示例 3ThinkPHP调用百度翻译类实现在线翻译 4使用ThinkPHP+Uploadify实现图片上传功能 5Thinkphp使用mongodb数据库实现多条件查询方法 6ThinkPHP实现多数据库连接的解决方法 7改写ThinkPHP的U方法使其路由下分页正常 8ThinkPHP实现将SESSION存入MYSQL的方法 9ThinkPH

ThinkPHP模版引擎之变量输出详解

ThinkPHP模版引擎之变量输出详解 使用ThinkPHP开发有一定时间了,今日对ThinkPHP的模板引擎变量解析深入了解了一下,做出一些总结,分享给大家供大家参考.具体分析如下: 我们已经知道了在Action中使用assign方法可以给模板变量赋值,赋值后怎么在模板文件中输出变量的值呢? 如果我们在Action中赋值了一个name模板变量: $name = 'ThinkPHP'; $this->assign('name',$name); 使用内置的模板引擎输出变量,只需要在模版文件使用:

基于thinkphp的uploadify上传图功能

php Action server端 <?php /* * To change this template, choose Tools | Templates * and open the template in the editor. */ /** * Description of UploadAction * * @author hxwj */ class UploadAction extends CommonAction{ public function _initialize(){ //

ThinkPHP 3.2.3集成uploadify上传控件

uploadify控件有一个坑爹的问题,就是文件上传时会session丢失,官方解释http://www.uploadify.com/documentation/uploadify/using-sessions-with-uploadify/,通过formData属性解决. 前端代码 <input type="file" name="file_upload" id="file_upload" /> $('#file_upload').

thinkphp 登录后uploadify上传flash上传时出现302

uploadify上传后端加了用户登陆验证后某些浏览器会出现 http error 302 代码测试版本thinkphp3.2 前端代码: <script type="text/javascript"> <?php $timestamp = time();?> $(function() { $('#images').uploadify({ 'formData'     : { '{:session_name()}':'{:session_id()}', 'tim

关于ThinkPHP下使用Uploadify插件 仅有火狐提示HTTP Error (302)错误的解决办法

'VAR_SESSION_ID' => 'session_id', //修复uploadify插件无法传递session_id的bug 首先在项目目录中的Common/Conf/config.php中加入上面一条配置. 然后在你的上传页面的JS代码中加入session_id=>session_id()参数即可   "uploader": "{:U('Admin/Config/uploadify',array('session_id'=>session_id(