Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Загрузка файлов на сервер средствами ZF2, Подскажите пожалуйста как загружаются файлы средствами ZF2
DRAKULITKA  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 1
Пользователь №: 42349
На форуме: 1 год, 4 месяца, 15 дней
Карма:




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

Фильтр:

class ProductFilter extends InputFilter
{
protected $category;

public function __construct (Array $category = array())
{
$this->category = $category;

...............


$images = new FileInput('images');
$images ->setRequired(true);
$images ->getFilterChain()->attach(new RenameUpload(array(
'target' => 'files/images/product/product-',
'use_upload_extension' => true,
'randomize' => true,
)));

$images ->getValidatorChain()->attach(new Size(array(
'max' => substr(ini_get('upload_max_filesize'), 0, -1). 'MB',
)));

$images ->getValidatorChain()->attach(new MimeType(array(
'image/gif', 'image/jpeg', 'image/png', 'enableHeaderCheck' => true,
)));

$this->add($images);

...............


}
}



Форма:

class ProductForm extends Form implements ObjectManagerAwareInterface
{

protected $objectManager;


public function __construct(ObjectManager $objectManager)
{
$this->setObjectManager($objectManager);

parent::__construct(null);
$this->setAttribute('method', 'post');
$this->setAttribute('class', 'form');

...............


$images = new File('images');
$images ->setLabel('Изображения: ');
$this->add($images);

...............

}
}



Контроллер:

public function insertAction ()
{
if (is_string($this->form))
$form = new $this->form;
else
$form = $this->form;

$request = $this->getRequest();

if ($request->isPost()) {

$form->setData(array_merge_recursive(
$this->getRequest()->getPost()->toArray(),
$this->getRequest()->getFiles()->toArray()
));


if ($form->isValid()) {
$service = $this->getServiceLocator()->get($this->service);

if ($service->save(
$this->getRequest()->getPost()->toArray(),
$this->getRequest()->getFiles()->toArray())) {

$this->flashMessenger()->addSuccessMessage('Данные успешно добавлены');
} else {
$this->flashMessenger()->addErrorMessage('Ошибка при добавлении данных');
}

return $this->redirect()->toRoute($this->route, array('controller' => $this->controller, 'action' => 'select'));
}
}


if ($this->flashMessenger()->hasSuccessMessages()) {
return new ViewModel(array(
'form' => $form,
'success' => $this->flashMessenger()->getSuccessMessages(),
));

}

if ($this->flashMessenger()->hasErrorMessages()) {
return new ViewModel(array(
'form' => $form,
'error' => $this->flashMessenger()->getErrorMessages(),
));

}

if ($this->flashMessenger()->hasWarningMessages()) {
return new ViewModel(array(
'form' => $form,
'warning' => $this->flashMessenger()->getWarningMessages(),
));

}

if ($this->flashMessenger()->hasInfoMessages()) {
return new ViewModel(array(
'form' => $form,
'info' => $this->flashMessenger()->getInfoMessages(),
));

}

$this->flashMessenger()->clearMessages();

return new ViewModel(array(
'form' => $form,
));

}


АбстрактныйСервис:

abstract class AbstractService
{

/**
*
@var EntityManager
*/

protected $em;
/**
*
@var
*/
protected $entity;


/**
*
@param EntityManager $em
*/

public function __construct (EntityManager $em)
{
$this->em = $em;
}


/**
*
@param array $data
*
@return bool|\Doctrine\Common\Proxy\Proxy|null|object
*
@throws \Doctrine\ORM\ORMException
*/

public function save (Array $data = array())
{
if (isset($data['id'])) {
$entity = $this->em->getReference($this->entity, $data['id']);
$hydrator = new ClassMethods();
$hydrator->hydrate($data, $entity);

} else {
$entity = new $this->entity($data);
}

$this->em->persist($entity);
$this->em->flush();

return $entity;
}
}

PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса