Страница 1 из 1

как поставить загрузчик фото в Добавить заказ

СообщениеДобавлено: 23 июн 2019, 09:33
vanred79
Здравствуйте! появилась необходимость добавить фото в форму Добавить заказ. Как я понял в движке для загрузки используется ext.EAjaxUpload.qqFileUploader. Согласно инструкции поставил этот код в файл \protected\modules\project\controllers\backend\MainController.php:
Код: Выделить всё
public function actionUpload()
{
Yii::import("ext.EAjaxUpload.qqFileUploader");

$folder='uploads/';// 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);
echo 
$result;// it's array
 

а этот код в файл \protected\modules\project\views\backend\main\_form.php:
Код: Выделить всё
$this->widget('ext.EAjaxUpload.EAjaxUpload',
            array(
                
'id'=>'uploadFile',
                
'config'=>array(
                    
'action'=>Yii::app()->createUrl('/project/backend/main'),
                    
'allowedExtensions'=>array("jpg","jpeg","gif""png"),//array("jpg","jpeg","gif","exe","mov" and etc...
                    
'sizeLimit'=>1*1024*1024,// maximum file size in bytes
                    
'minSizeLimit'=>1024,// minimum file size in bytes
                    
'onComplete'=>"js:function(id, fileName, responseJSON){ profile.showAva(responseJSON); }",
                    
'multiple'=>false,
                    
'showMessage'=>"js:function(message){ notify.error(message); }"
                
)
            )); 

Но загрузчик не работает

Подозреваю, что ошибка, в этой строке 'action'=>Yii::app()->createUrl('/project/backend/main'), подскажите пожалуйста как правильно заполнить action.

Еще вопрос по этой строке
Код: Выделить всё
$folder='uploads/';// folder for uploaded files 
как правильно путь прописать в этом движке?

Re: как поставить загрузчик фото в Добавить заказ

СообщениеДобавлено: 26 июн 2019, 20:05
vanred79
Здравствуйте! С загрузчиком вроде разобрался, но получается записать название файла в БД. В БД создан столбец name_image в таблице ojc_project, в модели name_image добавлен в public function rules()

Вот код в контроллере:
Код: Выделить всё
public function actionUpload(){    
    
Yii::import("ext.EAjaxUpload.qqFileUploader");
    
$user UserModule::user();
    
$folder=HUser::getUploadDir($userHUser::UPLOAD_PRODUCT) . DIRECTORY_SEPARATOR;
    
$allowedExtensions = array("jpg");//array("jpg","jpeg","gif","exe","mov" and etc...
    
$sizeLimit 1024 1024;// maximum file size in bytes
    
$uploader = new qqFileUploader($allowedExtensions$sizeLimit);
    
$result $uploader->handleUpload($folder);    
    
$fileName $result['filename'];//GETTING FILE NAME    
    
    
$project = new Project();
    
$project->name_image $fileName;
    
$project->save();
    
    
$return htmlspecialchars(json_encode($result), ENT_NOQUOTES);

    echo 
$return;// it's array
    
}     

Код создает папку и сохраняет фото как нужно, но не сохраняет название файла в БД.

Подскажите пожалуйста почему
Код: Выделить всё
$project->name_image $fileName
не сохраняет название файла в БД? Делал код по аналогии с Порфолио. Подскажите, что не так с кодом?

Re: как поставить загрузчик фото в Добавить заказ

СообщениеДобавлено: 28 июн 2019, 11:49
andipas
Код: Выделить всё

$project
->save();
 


посмотрите какие ошибки при сохранении данных модели, по простому это можно сделать так:

Код: Выделить всё
if($project->save()) {
   echo 'Успешно сохранили';
}
 else {
   echo CHtml::errorSummary($project);
}
 

Re: как поставить загрузчик фото в Добавить заказ

СообщениеДобавлено: 29 июн 2019, 20:39
vanred79
andipas писал(а):
Код: Выделить всё

$project
->save();
 


посмотрите какие ошибки при сохранении данных модели, по простому это можно сделать так:

Код: Выделить всё
if($project->save()) {
   echo 'Успешно сохранили';
}
 else {
   echo CHtml::errorSummary($project);
}
 

Здравствуйте!
После вставки этого кода перестал работать загрузчик см Скрин
И при нажатии кнопки Добавить не выходит ничего, ни Успешно сохранили, ни ошибки

Re: как поставить загрузчик фото в Добавить заказ

СообщениеДобавлено: 03 июл 2019, 23:04
vanred79
Здравствуйте! Подскажите пожалуйста возможно ли получить название изображения и передать ее в public function actionCreate() ?
Просто в actionCreate
Код: Выделить всё
$projectj->name_image 'название фото'
нормально сохраняется в БД.

Re: как поставить загрузчик фото в Добавить заказ

СообщениеДобавлено: 04 июл 2019, 07:49
vanred79
Здравствуйте! Возник такой вопрос возможно ли передать название файла загруженного ext.EAjaxUpload.qqFileUploader в $_POST['Project'] ? Если да, то как это можно сделать?

Re: как поставить загрузчик фото в Добавить заказ

СообщениеДобавлено: 04 июл 2019, 18:17
vanred79
Можете подсказать на Open Job CMS другие загрузчики фото подойдут? C yii2 или только с yii1 подходят? Если у вас есть ссылки на расширения загрузчиков фото, которые в БД пишут, скиньте пожалуйста

Re: как поставить загрузчик фото в Добавить заказ

СообщениеДобавлено: 05 июл 2019, 09:10
andipas
vanred79 писал(а):Можете подсказать на Open Job CMS другие загрузчики фото подойдут? C yii2 или только с yii1 подходят? Если у вас есть ссылки на расширения загрузчиков фото, которые в БД пишут, скиньте пожалуйста


Подойдут любые загрузчики, главное правильно их использовать. Описание одного из способов загрузки изображений - https://monoray.ru/86-yii/70-behaviors-v-yii

После вставки этого кода перестал работать загрузчик см Скрин
И при нажатии кнопки Добавить не выходит ничего, ни Успешно сохранили, ни ошибки


Потому что это ajax загрузчик и ошибки вы увидите только в панели управления разработчика, в Firefox она вызывается клавишей F12, вкладка "сеть".
https://developer.mozilla.org/ru/docs/T ... rk_Monitor - Ajax - это XHR-запросы

Re: как поставить загрузчик фото в Добавить заказ

СообщениеДобавлено: 05 июл 2019, 11:24
vanred79
andipas писал(а):
vanred79 писал(а):Можете подсказать на Open Job CMS другие загрузчики фото подойдут? C yii2 или только с yii1 подходят? Если у вас есть ссылки на расширения загрузчиков фото, которые в БД пишут, скиньте пожалуйста


Подойдут любые загрузчики, главное правильно их использовать. Описание одного из способов загрузки изображений - https://monoray.ru/86-yii/70-behaviors-v-yii

andipas спасибо! https://monoray.ru/86-yii/70-behaviors-v-yii нормально заработал и то, что нужно было