2014-10-08 1 views
-3

мой контроллеркак загрузить изображение в cakephp2.5 + и сохранить его в папке WebRoot

public function add() { 

    $this->helpers = array('TinyMCE.TinyMCE'); 
    $this->layout = 'adminpanel'; 
    if ($this->request->is('post')) { 
     $this->Tour->create(); 
     if ($this->Tour->save($this->request->data)) { 
      $this->Session->setFlash(__('Your possstt has been saved.')); 
      return $this->redirect(array('controller'=>'admin','action' => 'tour')); 
     } 
     $this->Session->setFlash(__('Unable to add your schedule.')); 
    } 

мой взгляд файл

echo $this->Form->create('Tour'); 
echo $this->Form->input('vartitle',array('class' => 'form-control','label' => 'Tour Title')); 
// etc................. 
echo $this->Form->input('varbigimg', array('type' => 'file')); 

echo $this->Form->end('Save Post',array('class' => 'form-control')); 

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

Так скажите мне, как сохранить изображение в папке webroot и просто сохранить имя в поле поля базы данных varbigimg. Я также хочу отобразить его на странице. Поэтому, пожалуйста, решить мою проблему спасибо

Я новичок в CakePHP благодаря

+2

Этот вопрос читается так, как будто вы хотите, чтобы кто-то написал код для вас. Попробуйте создать его с КОНКРЕТНЫМ вопросом о проблеме, с которой вы столкнулись, с деталями ошибки или элементом, который вы не понимаете ... и т. Д. что ты уже испробовал? Что сработало, чего нет ... и т. Д. В этой теме есть так много ресурсов, что это не место для общего «практического». – Dave

+0

Я слишком много стараюсь в этой теме и не получаю никаких решений, поэтому я отправлю его здесь – newsurt

ответ

0

Используйте следующие

echo $this->Form->create('Tour',array('autocomplete' => 'off','enctype'=>'multipart/form-data')); 

Позволяет изображения/видео данные, подлежащие обработке.

Внутри контроллера

if ($this->request->is('post')) { 

    if(is_uploaded_file($this->request->data['Tour']['varbigimg']['tmp_name'])) 
    { 
     $fileNameFull = $this->request->data['Tour']['varbigimg']['name']; 

     $oldFile = '../../app/webroot/img/'.$fileNameFull; 

     move_uploaded_file(
      $this->request->data['Tour']['varbigimg']['tmp_name'], 
      $oldFile 
     ); 

     $this->Tour->create(); 
     $this->request->data['Tour']['varbigimg'] = $fileNameFull; 

// здесь нужно указать же для Тум

 $this->request->data['Tour']['varthumimg'] = $fileNameFull; 

//// здесь вам нужно указать же для thumbfield

 if ($this->Tour->save($this->request->data)) { 
      $this->Session->setFlash(__('Your possstt has been saved.')); 
      return $this->redirect(array('controller'=>'admin','action' => 'tour')); 
     } 

    } 
} 
$this->Session->setFlash(__('Unable to add your schedule.')); 

// Обновление

// Введите здесь тип ввода в свой код.

echo $this->Form->input('vartitle',array('type'=>'text','class' => 'form-control','label' => 'Tour Title')); 
+0

спасибо за ответ.но когда я pastethis код, который раз сталкиваюсь} ошибка ошибка синтаксиса, неожиданный '{' если (is_uploaded_file ($ this-> request-> данные [ 'Tour'] [ 'varbigimg'] [ 'tmp_name' ]) { так что плз ошибка скобка я пытаюсь, но не могу. получить. спасибо за это предложения. плз решить 1 последний благодаря – newsurt

+0

@newsurt, проверить сейчас, один (не хватает –

+0

еще раз спасибо я получил ошибка SQL колонки не найден: 1054 Неизвестный столбец 'Array' в 'списке полей' Преобразование массива в строку [CORE/Cake/Model/Datasource/DboSource.php, строка 1009] – newsurt

0

Man, я попасть к вам потребности, чтобы сделать это просто. Сначала вам нужно получить доступ к файлу в вашем контроллере, используя $ this-> data ['Tour'] ['varbigimg']; ОК, это ваш файл. Итак, теперь вам нужно отправить этот файл в webroot, вы можете использовать класс файлов cakephp http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html Вы можете перемещать и копировать файлы на веб-сайт с использованием ограничения WWW_ROOT, эта константа доставит вам правильный путь к папке webroot, если вам нужно отправьте webroot img, используя IMAGES. Использование констант Folder/File и cakephp очень легко для ваших нужд. Если вам нужна дополнительная информация, plz спросите меня, и я создаю для вас настоящий пример. Tnx

0

Вам необходимо переместить загруженный файл в папку. Получите информацию о вашем файле $this->request->data и перейдите в папку webroot.

Для этого есть много плагинов. Как: Upload Plugin 2.0