2015-05-29 5 views
0

В настоящее время мы пытаемся использовать расширение eajaxupload для Yii, но, похоже, оно выводится с ошибкой каждый раз, когда мы пытаемся загрузить файл.eajaxupload для Yii всегда «сбой»

Мы попытались

а) отредактировав файл/минимальный размер файла

б) играть с пути к файлу (по-прежнему может быть неправильным, если кто-нибудь знает, что путь для локально, используя в XAMPP бы быть, дайте нам знать. Наша папка загрузки находится в корневом каталоге проекта.)

с) изменения файла htiaccess PHP

d) разрешения

мы просто не знаем, ошибочно ли сам код.

контроллер

/* UPLOADER */ 
    public function actionUpload(){ 
     Yii::import("ext.EAjaxUpload.qqFileUploader"); 
//  $folder = '/uploads/'; 
//  $folder=Yii::getPathOfAlias() .'/upload/'; 
     $folder=Yii::app()->baseUrl . '/uploads/'; 
     $allowedExtensions = array("jpg","png");//array("jpg","jpeg","gif","exe","mov" and etc... 
     $sizeLimit = 10 * 1024 * 1024;// maximum file size in bytes 
     $uploader = new qqFileUploader($allowedExtensions, $sizeLimit); 
     $result = $uploader->handleUpload($folder); 
//  $return = htmlspecialchars(json_encode($result), ENT_NOQUOTES); 
// 
//  $fileSize=filesize($folder.$result['filename']);//GETTING FILE SIZE 
//  $fileName=$result['filename'];//GETTING FILE NAME 
// 
//  echo $return;// it's array 

     $result = $uploader->handleUpload($folder); 

     $fileSize=filesize($folder.$result['filename']);//GETTING FILE SIZE 
     $fileName=$result['filename'];//GETTING FILE NAME 
     $result=htmlspecialchars(json_encode($result), ENT_NOQUOTES); 

     echo $result;// it's array 
    } 

Посмотреть

*$this->widget('ext.EAjaxUpload.EAjaxUpload', 
       array(
        'id'=>'uploadFile', 
        'config'=>array(
         'action'=>'/upload/', 
//      'action'=>Yii::app()->createUrl('controllers/uploads/'), 
         'allowedExtensions'=>array("jpg","png"),//array("jpg","jpeg","gif","exe","mov" and etc... 
         'sizeLimit'=>10*1024*1024,// maximum file size in bytes 
         //'minSizeLimit'=>10*1024*1024,// minimum file size in bytes 
         'onComplete'=>"js:function(id, fileName, responseJSON){ alert(fileName); }", 
         'messages'=>array(
          'typeError'=>"{file} has invalid extension. Only {extensions} are allowed.", 
          'sizeError'=>"{file} is too large, maximum file size is {sizeLimit}.", 
          'minSizeError'=>"{file} is too small, minimum file size is {minSizeLimit}.", 
          'emptyError'=>"{file} is empty, please select files again without it.", 
          'onLeave'=>"The files are being uploaded, if you leave now the upload will be cancelled." 
         ), 
         'showMessage'=>"js:function(message){ alert(message); }" 

        )* 

ответ

0

У меня такая же проблема давно. Вы должны убедиться, что:

  • вы получаете локальный путь, а не URL (Yii :: getPathOfAlias ​​('WebRoot')).
  • $ sizeLimit должен быть меньше параметров php 'post_max_size' и 'upload_max_size'. Вы можете проверить их значения с помощью ini_get (variable) и преобразовать его в Bytes.
  • Также заметил, что вы пытаетесь загрузить файл дважды.
  • Если ни одно из них не работает, опубликуйте сообщение об ошибке, которое вы получаете.
+0

Так бы: $ folder = Yii :: getPathOfAlias ​​().'/ Загрузки /'; then 'action' => '/ upload /', быть правильным способом отформатировать это? Все еще не повезло! мы первоначально получали ошибку 403, а затем переместились на 400. – DevAL

+0

У вас есть попытка Yii :: getPathOfAlias ​​('webroot')? Можете ли вы напечатать полный путь, который вы получаете? –

+0

Да, я уверен, что webroot был первым, что мы пробовали при использовании getpathofalias. Текущий путь, который, как представляется, выводится/application/uploads/images/ – DevAL

0

Мне кажется, что ваше действие является неправильным в

'config'=>array(
    'action'=>'/upload/', 

Если вы загружаете на public function actionUpload()

, то ваши действия должны быть «загрузки/загрузки» потому что ConrollerName/ActionName должны соответствовать 'действия' в виджете

'config'=>array(
     'action'=> Yii::app()->baseUrl . '/upload/upload', 

или

'config'=>array(
    'action'=>$this->createUrl('upload/upload') 

Взгляните на это тоже: http://www.yiiframework.com/doc/guide/1.1/en/topics.url

Успехов

0

Чтобы обновить это, он не будет работать на локальном сервере Xampp на MAC.

Он работал над нашим сервером live dev, но не с живым сервером. Кажется, что расширение зависит от сервера. Существует недостаток документации, и я думаю, что есть исправление, но он отвечает на многие вопросы, как код в порядке, но не работает.

+0

У меня также возникает проблема в реальном сервере, вызов ajax после выбора изображения не доходит до URL-адреса действия. :(@Alex, пожалуйста, поделитесь мной, как вы его решили? – Mahen

+0

мы не решили, что вызвало проблему, к сожалению. Мы загрузили на наш живой сервер там, где это сработало, и ему повезло, что это было! хост в другом месте, возможно, вам повезет больше. – DevAL

 Смежные вопросы

  • Нет связанных вопросов^_^