drop0118 2012-05-23 18:37:28 4385次浏览 11条回复 0 0 0

view代码如下:

<?php
$this->widget('application.extensions.swfupload.CSwfUpload', array(
    'jsHandlerUrl'=>'assets/handler.js', //Relative path
    'postParams'=>array(),
    'config'=>array(
        'use_query_string'=>true,
        'upload_url'=>$this->createUrl('s/up'), //Use $this->createUrl method or define yourself
        'file_size_limit'=>'2 MB',
        'file_types'=>'*.jpg;*.png;*.gif',
        'file_types_description'=>'Image Files',
        'file_upload_limit'=>0,
        'file_queue_error_handler'=>'js:fileQueueError',
        'file_dialog_complete_handler'=>'js:fileDialogComplete',
        'upload_progress_handler'=>'js:uploadProgress',
        'upload_error_handler'=>'js:uploadError',
        'upload_success_handler'=>'js:uploadSuccess',
        'upload_complete_handler'=>'js:uploadComplete',
        'custom_settings'=>array('upload_target'=>'divFileProgressContainer'),
        'button_placeholder_id'=>'swfupload',
        'button_width'=>170,
        'button_height'=>20,
        'button_text'=>'<span class="button">'.Yii::t('messageFile', 'ButtonLabel').' (Max 2 MB)</span>',
        'button_text_style'=>'.button { font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif; font-size: 11pt; text-align: center; }',
        'button_text_top_padding'=>0,
        'button_text_left_padding'=>0,
        'button_window_mode'=>'js:SWFUpload.WINDOW_MODE.TRANSPARENT',
        'button_cursor'=>'js:SWFUpload.CURSOR.HAND',
        ),
    )
);
?>

<?php echo CHtml::beginForm(); ?>
<div class="form">
    <div class="row">
    <div id="divFileProgressContainer"></div>
    <div class="swfupload"><span id="swfupload"></span></div>
    </div>
</div>
<?php echo CHtml::endForm(); ?>

现在我的页面打开什么都不显示,也不报错,请问各路大神,这是为什么啊?文件配置都是正确的。

  • 回复于 2012-05-23 19:43 举报

    'jsHandlerUrl'=>Yii::app()->assetManager->getBaseUrl().'/handlers.js', //Relative path

    改成上面这种试试.

  • 回复于 2012-05-23 22:22 举报

    'jsHandlerUrl'=>Yii::app()->assetManager->getBaseUrl().'/handlers.js'
    这个应该也不对。我试过。。然后页面的代码得到的JS的地址不对。。。这个相对地址我不知道怎么写。。。
    Yii::app()->assetManager->getBaseUrl().‘/assets/-随机-/handlers.js'测试是对的。。。
    正纠结呢。等高手。。

  • 回复于 2012-05-24 09:21 举报

    就是因为这个相对路径的问题吗?

  • 回复于 2012-05-24 09:33 举报

    可能,也许吧。我刚开始弄了半天,都显示不出来。后来查看页面的代码里面的JS生成
    <script type="text/javascript" src="/zcyxm/assets/8d3fb39e/swfupload.js"></script>
    然后,我就把view里面的代码人为的改成了
    'jsHandlerUrl'=>Yii::app()->assetManager->getBaseUrl().'/8d3fb39e/handlers.js',然后就至少可以了。
    不过这个肯定不是正确的办法。

  • 回复于 2012-05-24 10:07 举报

    我表示蛋疼无比,我的页面里面什么都没有显示出来,view显示出来是这玩意:

    <form action="/Dev/index.php/s/test" method="post"><div class="form">
        <div class="row">
        <div id="divFileProgressContainer"></div>
        <div class="swfupload"><span id="swfupload"></span></div>
        </div>
    </div>
    </form>
    
  • 回复于 2012-05-24 10:29 举报

    我测试的view页面

    <?
    $this->widget('application.extensions.swfupload.CSwfUpload', array(
        'jsHandlerUrl'=>Yii::app()->assetManager->getBaseUrl().'/8d3fb39e/handlers.js', //Relative path
        'postParams'=>array(),
        'config'=>array(
            'use_query_string'=>true,
    		'upload_url'=>$this->createUrl('site/test'),
            'file_size_limit'=>'2 MB',
            'file_types'=>'*.jpg;*.png;*.gif;',
    		//'file_types'=>'*.txt;',
            'file_types_description'=>'Image Files',
            'file_upload_limit'=>0,
            'file_queue_error_handler'=>'js:fileQueueError',
            'file_dialog_complete_handler'=>'js:fileDialogComplete',
            'upload_progress_handler'=>'js:uploadProgress',
            'upload_error_handler'=>'js:uploadError',
            'upload_success_handler'=>'js:uploadSuccess',
            'upload_complete_handler'=>'js:uploadComplete',
            'custom_settings'=>array('upload_target'=>'divFileProgressContainer'),
            'button_placeholder_id'=>'swfupload',
            'button_width'=>200,
            'button_height'=>20,
            'button_text'=>'<span class="button">'.Yii::t('messageFile', '请选择要上传的文件').' (Max 2 MB)</span>',
            'button_text_style'=>'.button { font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif; font-size: 11pt; text-align: center; }',
            'button_text_top_padding'=>0,
            'button_text_left_padding'=>0,
            'button_window_mode'=>'js:SWFUpload.WINDOW_MODE.TRANSPARENT',
            'button_cursor'=>'js:SWFUpload.CURSOR.HAND',
            ),
        )
    );
    ?>
     
    <?php echo CHtml::beginForm(); ?>
    <div class="form">
        <div class="row">
        <div id="divFileProgressContainer"></div>
        <div class="swfupload"><span id="swfupload"></span></div>
        </div>
    </div>
    <?php echo CHtml::endForm(); ?>
    

    在浏览器里面显示出来后,你查看源代码,看头部那些JS,有没有引用相对应的JS进来,主要是看引用的地址是不是正确的。

  • 回复于 2012-05-24 11:13 举报

    看来我跟这个程序无缘呀,我的页面里面什么js都没有,连标签都没有。哎····

  • 回复于 2012-05-24 14:41 举报

    我又纠结了一会。貌似解决了那个相对位置的问题了。不知道对不对。
    view里面的相对位置就这么写(我下的'handlers.js'和'swfupload.js'都放在 protected\extensions\swfupload\assets 文件夹下)
    'jsHandlerUrl'=>'handlers.js',然后修改CSwfUpload.php文件中的第十五行

    //Yii::app()->clientScript->registerScriptFile($this->jsHandlerUrl);
    Yii::app()->clientScript->registerScriptFile($baseUrl.'/'.$this->jsHandlerUrl);
    

    这样生成的页面中的源代码是

    <script type="text/javascript" src="/zcyxm/assets/8d3fb39e/swfupload.js"></script>
    <script type="text/javascript" src="/zcyxm/assets/8d3fb39e/handlers.js"></script>
    
  • 回复于 2012-05-24 16:49 举报

    改成 'jsHandlerUrl'=>Yii::app()->homeUrl.'handlers.js 相对入口文件的路径', //Relative path
    解析: Yii::app()->homeUrl是获取到入口文件的路径也就到 index.php
    一般js 放在根目录下的js 中
    例: 'jsHandlerUrl'=>Yii::app()->homeUrl.'/js/handlers.js

  • 回复于 2012-05-24 17:14 举报

    恩,这个办法蛮好。刚开始想着是插件扩展就没放到统一的JS或者CSS文件夹里面。

    问一哈,Yii::app()->baseUrlYii::app()->homeUrl有啥区别?

    然后后面的注释 Relative path 是指 相对于入口文件的相对地址,对么?

  • 回复于 2012-05-24 17:18 举报

    额,我打印了一下。有区别额。。。

    echo Yii::app()->homeUrl;
    echo '<br>';
    echo Yii::app()->baseUrl;
    

    结果是

    /zcyxm/index.php
    /zcyxm
    
您需要登录后才可以回复。登录 | 立即注册