日期:2014-05-17  浏览次数:20711 次

关于uploadify在zend framework下的应用
JScript code

var uploads='/uploads/logo/<?php echo date("Y");?>/<?php echo date("m");?>';
    $("#uplogo").uploadify({
        'uploader'       : '/uploadify/uploadify.swf',
        'script'         : '/card/fileup?flag=logo',
        'cancelImg'      : '/uploadify/cancel.png',
        'folder'         :  uploads,
        'queueID'        : 'fileQueue',                         //文件队列的ID,该ID与存放文件队列的div的ID一致
        'auto'           : true,                                //true自动上传,false不自动上传
        'multi'          : false,                             //置为true时可以上传多个文件
        'fileDesc'         : '图片(*.gif;*.jpg;*.jpeg;*png)',  //文件类型提示
        'fileExt'         : '*.gif;*.jpg;*.png',                //上传文件类型限制
        'sizeLimit'         : 1024000,                           //单个文件上传大小
        'simUploadLimit ': 1,                                 //同时可选择上传文件的数量
        'queueSizeLimit' : 1,
        'buttonImg'      : '/images/upload.gif',
        'width'             : 80,
        'height'         : 26,
        'wmode'             : 'transparent',
        'onComplete'     : function(event, queueId, fileObj,response){$("#logo").val(response);$("#div_logo").addClass("div_pic");$("#div_logo").html('<img src="'+response+'" style="width:200px;" />');}
        });




cardController.php
PHP code

public function fileupAction()
{
    try
    {
        move_uploaded_file($tempFile,$targetFile);
        //完成上传,传出上传后地址
        $this->view->msg=$_REQUEST['folder']."/".$newname;
    }
    catch(Exception $e)
    {
        error_log($e->getMessage());exit();
    }
}



以上代码,在IE下测试,上传无误,但是在非IE浏览器下,包括火狐,谷歌,Opera,Safari等浏览器,都是上传进度显示到100%,但不能够上传成功。
如下图


------解决方案--------------------
上传应该是没问题,应该是上传文件丢失了session,可以将需要的session再次post进去,
JScript code

 $("#uplogo").uploadify({
        'uploader'       : '/uploadify/uploadify.swf',
        'script'         : '/card/fileup?flag=logo',
        'cancelImg'      : '/uploadify/cancel.png',
        'folder'         :  uploads,
        'scriptData'     : {'dealer_id':'参数内容'},//加上这句,用post方法接收即可
        'queueID'        : 'fileQueue',                         //文件队列的ID,该ID与存放文件队列的div的ID一致
        'auto'           : true,                                //true自动上传,false不自动上传
        'multi'          : false,                             //置为true时可以上传多个文件
        'fileDesc'         : '图片(*.gif;*.jpg;*.jpeg;*png)',  //文件类型提示
        'fileExt'         : '*.gif;*.jpg;*.png',                //上传文件类型限制
        'sizeLimit'         : 1024000,                           //单个文件上传大小
        'simUploadLimit ': 1,                                 //同时可选择上传文件的数量
        'queueSizeLimit' : 1,
        'buttonImg'      : '/images/upload.gif',
        'width'             : 80,
        'height'         : 26,
        'wmode'             : 'transparent',
        'onComplete'     : function(event, queueId, fileObj,response){$("#logo").val(response);$("#div_logo").addClass("div_pic");$("#div_logo").html('<img src="'+response+'" style="width:200px;" />');}
        });