CakePHP file upload errors

蹲街弑〆低调 提交于 2020-01-16 12:01:03

问题


I'm running into this error with my database saying that I have some issue with an array:

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

This is part of my edit.php file with the field userphoto for image file upload

<?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')); ?>

回答1:


userphoto is a file field, it will contain data similar as:

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

Which means it is an array.

But in your code, you are directly inserting an array to your database. You need to handle the file upload explicitly.

Check out Best practice to upload files in CakePHP




回答2:


$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;


来源:https://stackoverflow.com/questions/20989822/cakephp-file-upload-errors

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!