我正在尝试创建一个接受文件上传的简单Cakephp 2.5.1应用程序。我正在使用http://milesj.me/code/cakephp/uploader中提供的文件上传器插件。我按照网站上的说明安装了它,似乎工作正常。
以下代码将添加到model.php中。有一栏专栏图片'在模型表中。
public $actsAs = array(
'Uploader.Attachment' => array(
// Do not copy all these settings, it's merely an example
'picture' => array(
'nameCallback' => '',
'append' => '',
'prepend' => '',
'tempDir' => TMP,
'uploadDir' => '',
'transportDir' => '',
'finalPath' => '',
'dbColumn' => '',
'metaColumns' => array(),
'defaultPath' => '',
'overwrite' => false,
'stopSave' => true,
'allowEmpty' => true,
'transforms' => array(),
'transformers' => array(),
'transport' => array(),
'transporters' => array(),
'curl' => array()
)
)
);
在关联的ctp文件中,我有以下代码;
<?php
echo $this->Form->create('Upload', array('type' => 'file'));
echo $this->Form->input('picture', array('type' => 'file'));
echo $this->Form->end('Submit');
?>
我设法将图像文件SSSS.jpg上传到网络服务器。然而,奇怪的是上传的图像文件是一个小文件,其中包含文本中的HTTP POST信息,而不是实际的图像数据。文件内容看起来像这样;
_method=POST&_method=POST&data%5BUpload%5D%5Bpicture%5D=SSSS.jpg
有人能告诉我哪些事情可能出错了吗?谢谢。
编辑:我刚在Chrome调试中发现,在HTTP POST方法下,发送的文件类型为text/html
。这是一个问题吗?如果是,我如何将类型更改为image/jpg
?
答案 0 :(得分:1)
更改以下行
echo $this->Form->input('picture', array('type' => 'file'));
使用以下语法
echo $this->Form->input('picture', array('type' => 'file/image'));
示例代码:
echo $form->labelTag('File/image', 'Image');
echo $html->file('File/image');