Мы создаем приложение в рамках Zend и испытываем трудности с перемещением загруженного файла. Мы получаем файл $ filePath = $ form-> image-> getFileName (); но когда мы пытаемся запустить move_uploaded_file на нем, он просто возвращает false.
Изображение успешно загружается в каталог temp, но мы не можем переместить его в папку.
$formData = $request->getPost(); if ($form->isValid($formData)) { $form->image->receive(); $filePath = $form->image->getFileName(); move_uploaded_file($filePath,APPLICATION_PATH . '\images\new'); }
заранее спасибо
РЕДАКТИРОВАТЬ:
Когда я пытаюсь это сделать, я получаю 500 – внутреннюю ошибку сервера:
$upload = new Zend_File_Transfer_Adapter_Http(); $upload->setDestination("C:\xx\xx\public\banners"); if (!$upload->isValid()) { throw new Exception('Bad image data: '.implode(',', $upload->getMessages())); } try { $upload->receive(); } catch (Zend_File_Transfer_Exception $e) { throw new Exception('Bad image data: '.$e->getMessage()); }
Кажется, что это «$ upload-> setDestination (« C: \ xx \ xx \ public \ banners »)», которые приводят к сбою
Этот эквивалентный вопрос и ответ на stackoverflow должен помочь вам: загрузка файлов с использованием zend framework 1.7.4
//validate file //for example, this checks there is exactly 1 file, it is a jpeg and is less than 512KB $upload = new Zend_File_Transfer_Adapter_Http(); $upload->addValidator('Count', false, array('min' =>1, 'max' => 1)) ->addValidator('IsImage', false, 'jpeg') ->addValidator('Size', false, array('max' => '512kB')) ->setDestination('/tmp'); if (!$upload->isValid()) { throw new Exception('Bad image data: '.implode(',', $upload->getMessages())); } try { $upload->receive(); } catch (Zend_File_Transfer_Exception $e) { throw new Exception('Bad image data: '.$e->getMessage()); } //then process your file, it's path is found by calling $upload->getFilename()
После использования ->receive()
вы уже переместили загруженный файл, поэтому вызов другого move_uploaded_file()
бессмысленен.