onunix 2012-08-24 15:17:28 3692次浏览 6条回复 0 0 0

Yii的扩展swfupload 每次上传文件时返回404错误,请问这是什么原因?

  • 回复于 2012-08-24 15:35 举报

    404,路径不存在。

  • 回复于 2012-08-24 16:15 举报

    请问哪一个地方是配路径的啊?

    <?php
    $this->widget('application.extensions.swfupload.CSwfUpload', array(
        'jsHandlerUrl'=>'\Yii\path\to\handler.js', //Relative path
        'postParams'=>array(),
        'config'=>array(
            'use_query_string'=>true,
            'upload_url'=>Yii::app()->createUrl('upload'),
            '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">abc</span></div>
        </div>
    </div>
    <?php echo CHtml::endForm(); ?>
    

    是否这行有问题,'upload_url'=>Yii::app()->createUrl('upload'), 不是太明白这是用于做什么,是用于确定下载到服务器上的路径吗?

  • 回复于 2012-08-24 16:39 举报

    你先输出upload_url来看看,然后看看你的服务器上是不是有这个upload目录,不就知道了。

  • 回复于 2012-08-24 17:52 举报

    我查看了下网页的源代码:

    swfu = new SWFUpload({'post_params':{'PHPSESSID':'fm9ua3qbobe1476p63fj9fk3l2'},'flash_url':'/Yii/assets/ee5da5a6/swfupload.swf','use_query_string':true,'upload_url':'/Yii/index.php?r=upload'
    

    我的Yii目录下有个upload的子目录,

    请问这样是有问题的吗?

  • 回复于 2012-08-30 13:57 举报

    upload_url是指用于处理上传文件的脚本,这里你指向的是index.php?r=upload,这是一个yii路由,可能指向一个controller,也可能指向一个component,这个你有么?没有的话,他就404了。

  • 回复于 2012-08-30 16:02 举报

    多谢答复。现在已经没有这个错误了。这是我刚刚开始swfupload时犯的低级错误。

您需要登录后才可以回复。登录 | 立即注册