File upload 使用CakePHP创建文件上载,所有$file数组项都返回文件名的第一个字符
在我的视图文件add.ctp中使用以下代码: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-
<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'));