File upload 使用CakePHP创建文件上载,所有$file数组项都返回文件名的第一个字符

File upload 使用CakePHP创建文件上载,所有$file数组项都返回文件名的第一个字符,file-upload,cakephp-1.3,File Upload,Cakephp 1.3,在我的视图文件add.ctp中使用以下代码: <div class="resources form"> <?php echo $this->Form->create('Resource');?> <fieldset> <legend><?php __('Add Resource'); ?></legend> <?php echo $this->Form-

在我的视图文件add.ctp中使用以下代码:

<div class="resources form">
<?php echo $this->Form->create('Resource');?>
    <fieldset>
        <legend><?php __('Add Resource'); ?></legend>
    <?php
        echo $this->Form->input('title');
        echo $this->Form->input('file', array('type' => 'file'));
        ...
    ?>
</fieldset>
<?php echo $this->Form->end(__('Submit', true));?>
</div>
...
…使用以下功能来测试流程:

function uploadFile() {
        $file=$this->data['Resource']['file'];
        $this->data['Resource']['filename'] = 'failing with name:'.$file['name'].'/ file_mime: '.$file['filemime'];
    return true;
}
无论我尝试上载哪个文件或尝试访问$file数组中的哪些元素,数据库总是填充文件原始文件名的第一个字符。例如,使用test.gif,我得到:

失败,名称为:t/file\u mime:t

值得注意的是,此代码是我将函数要执行的任务减少到最低限度以定位问题的结果。因此结果很奇怪。文件名的数据库列如下所示:

文件名/varchar200/utf8\u常规\u ci/非空


我是CakePHP的新手,我完全不知道该找些什么来让它工作,我的头发都被扯掉了。任何帮助或指向正确方向的人都会得到感谢。

我设法找到了CakePHP的一位撰稿人,他非常非常友好地提供了帮助,并为我解决了问题,我非常感谢,但不会透露他的姓名

乍一看,您的add.ctp在表单创建中需要一个数组:

echo $this->Form->create('Resource', array('type' => 'file'));
这告诉CakePHP表单帮助程序创建一个多部分表单类型,以便发送文件

echo $this->Form->create('Resource', array('type' => 'file'));