Yii 文件上传 $_FILE 为空
Yii file upload $_FILE is empty
我正在尝试通过表单将图像上传到我的模型。我正在使用 Yii 1.1
模型在数据库中不包含列 "image",所以我在模型中创建了这样的属性
public $image;
我在规则中添加了以下内容
array('image', 'file', 'types'=>'jpg,gif,png', 'allowEmpty'=>true),
在视图中,我向表单添加了 htmlOption array('enctype' => 'multipart/form-data')
,而对于文件上传:
<th><?php echo $form->labelEx($model, 'image'); ?></th>
<td><?php echo $form->fileField($model, 'image');?></td>
<th><?php echo $form->error($model, 'image');'>'?></th>
我看到上传图片的按钮,当我按下按钮时,我的控制器的动作被调用但是如果我创建一个日志来显示 $_POST and/or $_FILES 我得到这个:
从 $_FILES 中记录
2016/07/07 18:18:12 [info] [application] FILE :
Array
(
)
我从 $_POST
收到的日志
[Puntointeres] => Array
(
[Name] => My Name
[Description] => What ever
......
[image] =>
)
有什么帮助吗?
可能是你忘记设置加密类型了:
<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?>
另外你的字段不正确,应该是:
$form->field($model, 'image')->fileInput()
还要记住 Yii 不会在 $_POST 中发送图像的值。它通过 $_POST 发送它在使用 inputFile 时生成的隐藏字段。
您好,您检查过在 Developer 工具中生成的 html 了吗?我有 enctype
或没有。
如果没有,请将其添加到您的表单选项中。
'htmlOptions' => array(
'enctype' => 'multipart/form-data',
),
您还必须调用 CUploadedFile
来获取上传的文件信息
使用此 link 在 yii
中上传文件。http://www.yiiframework.com/wiki/2/how-to-upload-a-file-using-a-model/
关于 CUploadedFile
文件的信息 http://www.yiiframework.com/doc/api/1.1/CUploadedFile
问题与序列化字段的 SubmitButtonAjax 有关,文件字段已转换为字符串。
我正在尝试通过表单将图像上传到我的模型。我正在使用 Yii 1.1
模型在数据库中不包含列 "image",所以我在模型中创建了这样的属性
public $image;
我在规则中添加了以下内容
array('image', 'file', 'types'=>'jpg,gif,png', 'allowEmpty'=>true),
在视图中,我向表单添加了 htmlOption array('enctype' => 'multipart/form-data')
,而对于文件上传:
<th><?php echo $form->labelEx($model, 'image'); ?></th>
<td><?php echo $form->fileField($model, 'image');?></td>
<th><?php echo $form->error($model, 'image');'>'?></th>
我看到上传图片的按钮,当我按下按钮时,我的控制器的动作被调用但是如果我创建一个日志来显示 $_POST and/or $_FILES 我得到这个:
从 $_FILES 中记录
2016/07/07 18:18:12 [info] [application] FILE :
Array
(
)
我从 $_POST
收到的日志[Puntointeres] => Array
(
[Name] => My Name
[Description] => What ever
......
[image] =>
)
有什么帮助吗?
可能是你忘记设置加密类型了:
<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?>
另外你的字段不正确,应该是:
$form->field($model, 'image')->fileInput()
还要记住 Yii 不会在 $_POST 中发送图像的值。它通过 $_POST 发送它在使用 inputFile 时生成的隐藏字段。
您好,您检查过在 Developer 工具中生成的 html 了吗?我有 enctype
或没有。
如果没有,请将其添加到您的表单选项中。
'htmlOptions' => array(
'enctype' => 'multipart/form-data',
),
您还必须调用 CUploadedFile
来获取上传的文件信息
使用此 link 在 yii
中上传文件。http://www.yiiframework.com/wiki/2/how-to-upload-a-file-using-a-model/
关于 CUploadedFile
文件的信息 http://www.yiiframework.com/doc/api/1.1/CUploadedFile
问题与序列化字段的 SubmitButtonAjax 有关,文件字段已转换为字符串。