2014-01-08 4 views
0

Я бегу в эту ошибку с моей базой данных о том, что у меня есть некоторые проблемы с массивом:CakePHP ошибки загрузки файлов

Database Error

Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Array' in 'field list'

SQL Query: UPDATE `mongexc_cake214`.`configurations` SET `id` = 1, `username` = 'bill clinton', `profession` = 'president', `description` = 'Ob Jones-D is a Thai Massage and Electronic Acupuncture Specialist. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quam, repellat optio officiis neque ea repudiandae sint corrupti illo? Maiores adipisci mollitia quae perferendis numquam minima deserunt ratione placeat rem. Numquam?', `tel_mobile` = '000-000-0000', `address` = '000 new york of africa V99 999', `userphoto` = Array WHERE `mongexc_cake214`.`configurations`.`id` = '1'

Notice: If you want to customize this error message, create app/View/Errors/pdo_error.ctp

Это является частью моей edit.php файл с полем Userphoto для загрузки файла изображения

<?php echo $this->Form->create('Configuration', array('type' => 'file')); ?> 
<fieldset> 
<legend><?php echo __('Edit Configuration'); ?></legend> 
<?php 
echo $this->Form->input('id'); 
echo $this->Form->input('username'); 
echo $this->Form->input('profession'); 
echo $this->Form->input('description', array('type' => 'textarea','label' => 'Content of this Article', 'rows' => '10', 'cols' => '120')); 
echo $this->Form->input('userphoto', array('type' => 'file')); 
echo $this->Form->input('tel_mobile'); 
echo $this->Form->input('address'); 
?> 
</fieldset> 
<?php echo $this->Form->end(__('Submit')); ?> 
+0

Как вы обработку входящей 'userphoto' информацию о массиве файлов в вашем связанных _controller_? – summea

+0

Thks summea! это мой смысл [link] (https://gist.github.com/guinslym/8313365). Я был на 'edit.ctp' –

ответ

0

userphoto это поле файл, он будет содержать данные, аналогичные как:

$this->request->data['Configuration']['userphoto'] = array(
    'error' => …, 
    'name' => …, 
    … 
) 

Это означает, что это массив.

Но в вашем коде вы непосредственно вставляете массив в свою базу данных. Вам нужно явно обработать файл.

Заканчивать Best practice to upload files in CakePHP

+0

thks XuDing! thks для ссылки также –

0
$imageData = exif_imagetype($this->request->data['Foo']['image']['tmp_name']); 
       image_type_to_mime_type($imageData); 
        switch ($imageData) : 
        case '2': 
         $type = '.jpg'; 
         break; 
        case '3': 
         $type = '.png'; 
         break; 
        default: 
         $type = 'invalid'; 
         break; 
        endswitch; 
$uniq = mt_rand(); 
move_uploaded_file($this->request->data['Foo']['image']['tmp_name'],'path/to/dir'); 
$this->request->data['Foo']['image'] = '/path/to/dir/'.$uniq.$type; 
Смежные вопросы