2012-03-19 3 views
1

Я использую https://github.com/yiiext/uploadify-widget, и я провожу много времени, пытаясь решить ошибку HTTP Error: 500, и у меня нет Ideia как отлаживатьHTTP Error: 500 Uploadify-виджет для фреймворка

здесь вид protected/views/admin/_form_photo.php:

<?php 
$this->widget('ext.uploadify.EUploadifyWidget', array(
    // you can either use it for model attribute 
    'model' => new UploadifyFile, 
    'attribute' => 'file1', 
    // or just for input field 
    'name' => 'UploadifyFile_file1', 
    // the name of the POST parameter where save session id 
    'sessionParam' => 'PHP_SESSION_ID', 
    // extension [options](http://www.uploadify.com/documentation/) 
    'options' => array(
     'fileExt' => '*.jpg;*.png;*.gif', 
     'script' => $this->createUrl('SwfUpload'), 
     'debug' => true, 
     'auto' => false, 
     'multi' => true, 
     'buttonText' => 'Upload Images', 
     'onError' => 'js:function (event,ID,fileObj,errorObj) { alert(errorObj.type + \' Error: \' + errorObj.info); }' 
    ) 
)); 
?> 

у меня есть модель protected/models/UploadifyFile.php:

<?php 

class UploadifyFile extends CFormModel 
{ 
    public $uploadifyFile; 

    public function rules() 
    { 
     return array(
      array(
       'uploadifyFile', 
       'file', 
       'maxSize' => 1024 * 1024 * 1024, 
       'types' => 'jpg, png, gif, txt' 
      ) 
     ); 
    } 
} 

?> 

у меня есть действие protected/controllers/SwfUploadAction.php:

<?php 
    class SwfUploadAction extends CAction 
    { 
     public $folder; 

     public function run() 
     { 
      $folder = $this->folder; 

      if ($folder === false) { 
       throw new CException(Yii::t(__CLASS__, "Folder does not exists.", array())); 
      } 
      if (isset($_FILES['UploadifyFile']) === true) { 
       $model    = new UploadifyFile; 
       $model->attributes = array(
        'uploadifyFile' => '' 
       ); 
       $model->uploadifyFile = CUploadedFile::getInstance($model, 'uploadifyFile'); 
       if ($model->validate() === false) { 
        throw new CException(Yii::t(__CLASS__, "Invalid file.", array())); 
       } 
       if (!$model->uploadifyFile->saveAs($folder . '/' . $model->uploadifyFile->getName())) { 
        throw new CException(Yii::t(__CLASS__, "Upload error.", array())); 
       } else { 
        die("Upload success"); 
       } 
      } else { 
       throw new CException(Yii::t(__CLASS__, "File not sent.", array())); 
      } 
      throw new CException(Yii::t(__CLASS__, 'Unknown error.', array())); 
     } 
    } 

    ?> 

и действия от контроллера protected/controllers/AdminController.php:

function actions() 
{ 
    return array(
     'SwfUpload' => array(
      'class' => 'application.controllers.SwfUploadAction', 
      'folder' => 'images' 
     ) 
    ); 
} 

Я читал статьи, которые могут быть проблемы с аутентификацией вспышки, и я должен использовать forgerySession http://code.google.com/p/yiiext/source/browse/trunk/app/extensions/yiiext/filters/forgerySession/, и я не имею ни малейшего представления как его настроить, Большое спасибо заранее !!!!

ответ

0

Простейший способ решить эту проблему - разрешить несанкционированный доступ к действию. То есть, если вы выполняете проверку подлинности в приложении, верните истину для неавторизованного для конкретного действия загрузки.

Чтобы предложить более конкретный ответ, мне нужно знать, как вы выполняете аутентификацию в своем приложении.

+0

аутентификация Я делаю бросок UserIdentity, database – mIRU

+0

Я понимаю, что я хотел знать, как вы проверяете, может ли пользователь получить доступ к действию или нет? –