[v0.3] File Upload Action
Re: [v0.3] File Upload Action
Доброго времени суток, использую Yii второй день, встал вопрос как закачать файл на сервер. По примеру с официального сайта не получяется, хочу использовать File Upload Action, но не могу сообразить куда положить файл компонента, и куда чего прописать. Помогите пожалуйста кто может
-
- Сообщения: 4
- Зарегистрирован: 2013.12.04, 13:12
Re: [v0.3] File Upload Action
Добрый день.
Подключаю File Upload Action в связке с ImperaviRedactorWidget.
Объявляю action:
Но при попытке загрузки плюется ошибкой 500:
Событие "EFileUploadAction.onafterupload" привязано неверным обработчиком "NULL".
Что может быть не так?
Подключаю File Upload Action в связке с ImperaviRedactorWidget.
Объявляю action:
Код: Выделить всё
public function actions()
{
return array(
'upload' => array(
'class' => 'ext.EFileUploadAction',
'model'=>null,
'attribute'=>null,
'name' => 'file',
'createDirectory' => true,
'createDirectoryMode' => 0777,
'createDirectoryRecursive' => true,
'filenameRule'=>'md5($file->name).".".$file->extensionName',
'path' => realpath(Yii::getPathOfAlias('basePath')) . '/upload/works/' . date('Y-m-d'),
'onAfterUpload' => function($event){
if ($event->sender->hasErrors()) {
$result = CJSON::encode($event->sender->getErrors());
} else {
$path = str_replace(realpath(Yii::getPathOfAlias('basePath') . '/'), Yii::app()->baseUrl, $event->sender->path);
$path = Yii::app()->baseUrl . '/upload/works/' . date('Y-m-d');
$file = array(
'filelink' => $path . '/' . $event->sender->filename,
'filename' => $event->sender->filename,
);
if($type = Yii::app()->request->getQuery('type', 'file') == 'image') {}
$result = CJSON::encode($file);
}
echo stripslashes($result);
exit;
}
),
);
}
Событие "EFileUploadAction.onafterupload" привязано неверным обработчиком "NULL".
Что может быть не так?
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: [v0.3] File Upload Action
Странно, единственный вариант вижу что не поддерживаются анонимки. Точно версия PHP >= 5.3 ?
Жду Yii 3!
-
- Сообщения: 4
- Зарегистрирован: 2013.12.04, 13:12
Re: [v0.3] File Upload Action
Поддерживаются. php 5.4.4-14+deb7u5
Trace ошибки подробней:
Trace ошибки подробней:
Код: Выделить всё
2013/12/04 14:37:38 [error] [exception.CException] exception 'CException' with message 'Событие "EFileUploadAction.onafterupload" привязано неверным обработчиком "NULL".' in /home/gp/gp.gpdev.ru/vendor/yiisoft/yii/framework/base/CComponent.php:570
Stack trace:
#0 /home/gp/gp.gpdev.ru/public_html/protected/extensions/EFileUploadAction.php(232): CComponent->raiseEvent('onAfterUpload', Object(CEvent))
#1 /home/gp/gp.gpdev.ru/public_html/protected/extensions/EFileUploadAction.php(270): EFileUploadAction->onAfterUpload(Object(CEvent))
#2 /home/gp/gp.gpdev.ru/public_html/protected/extensions/EFileUploadAction.php(188): EFileUploadAction->afterUpload()
#3 /home/gp/gp.gpdev.ru/public_html/protected/extensions/EFileUploadAction.php(115): EFileUploadAction->upload()
#4 /home/gp/gp.gpdev.ru/vendor/yiisoft/yii/framework/web/actions/CAction.php(76): EFileUploadAction->run()
#5 /home/gp/gp.gpdev.ru/vendor/yiisoft/yii/framework/web/CController.php(308): CAction->runWithParams(Array)
#6 /home/gp/gp.gpdev.ru/vendor/yiisoft/yii/framework/web/filters/CFilterChain.php(133): CController->runAction(Object(EFileUploadAction))
#7 /home/gp/gp.gpdev.ru/vendor/yiisoft/yii/framework/web/filters/CFilter.php(40): CFilterChain->run()
#8 /home/gp/gp.gpdev.ru/vendor/yiisoft/yii/framework/web/filters/CFilterChain.php(130): CFilter->filter(Object(CFilterChain))
#9 /home/gp/gp.gpdev.ru/vendor/yiisoft/yii/framework/web/filters/CFilter.php(40): CFilterChain->run()
#10 /home/gp/gp.gpdev.ru/vendor/yiisoft/yii/framework/web/CController.php(1145): CFilter->filter(Object(CFilterChain))
#11 /home/gp/gp.gpdev.ru/vendor/yiisoft/yii/framework/web/filters/CInlineFilter.php(58): CController->filterAccessControl(Object(CFilterChain))
#12 /home/gp/gp.gpdev.ru/vendor/yiisoft/yii/framework/web/filters/CFilterChain.php(130): CInlineFilter->filter(Object(CFilterChain))
#13 /home/gp/gp.gpdev.ru/vendor/yiisoft/yii/framework/web/CController.php(291): CFilterChain->run()
#14 /home/gp/gp.gpdev.ru/vendor/yiisoft/yii/framework/web/CController.php(265): CController->runActionWithFilters(Object(EFileUploadAction), Array)
#15 /home/gp/gp.gpdev.ru/vendor/yiisoft/yii/framework/web/CWebApplication.php(282): CController->run('upload')
#16 /home/gp/gp.gpdev.ru/vendor/yiisoft/yii/framework/web/CWebApplication.php(141): CWebApplication->runController('settings/upload')
#17 /home/gp/gp.gpdev.ru/vendor/yiisoft/yii/framework/base/CApplication.php(180): CWebApplication->processRequest()
#18 /home/gp/gp.gpdev.ru/public_html/index.php(22): CApplication->run()
#19 {main}
REQUEST_URI=/settings/upload
HTTP_REFERER=http://gp.gpdev.ru/ru/works/create
-
- Сообщения: 4
- Зарегистрирован: 2013.12.04, 13:12
Re: [v0.3] File Upload Action
А на php 5.3, как раз, работает все ок.
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: [v0.3] File Upload Action
Не знаю тогда что происходит.
Попробуй ивент добавить не как анонимку а через callback функцию в контроллере
Попробуй ивент добавить не как анонимку а через callback функцию в контроллере
Жду Yii 3!
-
- Сообщения: 4
- Зарегистрирован: 2013.12.04, 13:12
Re: [v0.3] File Upload Action
Да, проблема именно в анонимке, через callback функции контроллера все работает.
Ну и проблема анонимок была решена отключением eAccelerator.
eAccelerator not compatible with anonymous function/closure under php 5.4.6
Спасибо!
Ну и проблема анонимок была решена отключением eAccelerator.
eAccelerator not compatible with anonymous function/closure under php 5.4.6
Спасибо!
-
- Сообщения: 1428
- Зарегистрирован: 2009.08.20, 22:54
- Откуда: Молдова, Бельцы
- Контактная информация:
Re: [v0.3] File Upload Action
Добавил поддержку composer и выложил на packagist, если добрые люди(Sam например) помогут мне, то и на yiigist появится.