2011-12-17 5 views
3

Я новичок в Yii и хочу интегрировать загрузку файлов. К сожалению, я не смог заставить его работать. Я загрузил и извлек плагин в/extensions/folder, но теперь я не знаю что делать.Как использовать xupload с Yii

Может ли кто-нибудь мне навестить?

здесь ссылка для расширения

http://www.yiiframework.com/extension/xupload/

+0

http://www.yiiframework.com/wiki/348/xupload-workflow/ – Muhtar

+0

читать эту ссылку официального сайта Yii, вот шаг шаг за шагом. http://www.yiiframework.com/extension/xupload#hh3 – AGP

ответ

4

, что расширение является устаревшим и плохо поддерживается. Вместо этого я использую это расширение: eajaxupload.

Как вы можете видеть на этой странице, использование чрезвычайно простое. Загрузить его к расширениям директории и установить его с помощью этих нескольких строк кода

Сначала вы поместите следующий код в действии контроллера:

public function actionUpload() 
{ 
     Yii::import("ext.EAjaxUpload.qqFileUploader"); 

     $folder='upload/';// folder for uploaded files 
     $allowedExtensions = array("jpg");//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); 
     $result=htmlspecialchars(json_encode($result), ENT_NOQUOTES); 

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

     echo $result;// it's array 
} 

После этого перейдите в соответствующий файл представления для этого действия и использования этот код для создания формы загрузки:

<? $this->widget('ext.EAjaxUpload.EAjaxUpload', 
array(
     'id'=>'uploadFile', 
     'config'=>array(
       'action'=>'/controller/upload', 
       'allowedExtensions'=>array("jpg");//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

изменяет ли имя файла после загрузки – Symfony

+1

Нет, если вы хотите сделать это, просто переименуйте файл в конце функции контроллера: 'rename (. $ папка $ результат [ 'имя файла'], $ папка "newfilename");. ' – Ben

-1

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

./extensions/EAjaxUpload/qqFileUploader.php

$pathinfo = pathinfo($this->file->getName()); 
    $filename = $pathinfo['filename']; 
    //$filename = md5(uniqid()); 
    $ext = $pathinfo['extension']; 
Смежные вопросы