Php 上载到web服务器的文件不包含实际的文件数据
我正在尝试创建一个简单的Cakephp 2.5.1应用程序,它接受文件上传。我正在使用中提供的文件上传器插件。我按照网站上的说明安装了它,看起来效果不错 下面的代码被添加到model.php中。模型表中有一列“图片”Php 上载到web服务器的文件不包含实际的文件数据,php,cakephp,file-upload,http-post,Php,Cakephp,File Upload,Http Post,我正在尝试创建一个简单的Cakephp 2.5.1应用程序,它接受文件上传。我正在使用中提供的文件上传器插件。我按照网站上的说明安装了它,看起来效果不错 下面的代码被添加到model.php中。模型表中有一列“图片” public $actsAs = array( 'Uploader.Attachment' => array( // Do not copy all these settings, it's merely an example 'pic
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');
?>
有人能告诉我可能出了什么问题吗?多谢各位
编辑:我刚刚在Chrome调试中注意到,在HTTPPOST方法下,发送的文件类型为
text/html
。这是个问题吗?如果是,如何将类型更改为image/jpg
?更改以下行
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');
您在发送文件的html中使用了多部分类型?我不确定。在Cakephp中,视图助手在后台执行操作。让我先检查一下。还要验证该字段的名称是否与cakephp上的上载处理程序上的名称相同。下面的表单代码确实包含
enctype=“multipart/form data”
Picture
@eddwinpaz:问题是否由HTTP Post中发送的文件类型是text/html
而不是image/jpg
引起?谢谢!验证并标记为正确答案。但还有一个问题。在我更改为“文件/图像”
后,输入字段变成一个文本框,我必须在其中输入文件的完整路径。当它是'type'=>'file'
时,我可以单击它,然后出现一个对话框来选择文件。有趣的是,完整路径并没有出现,只有文件名出现。想知道这是否是问题的根源。阅读此
echo $form->labelTag('File/image', 'Image');
echo $html->file('File/image');