我正在尝试构建一个将图像上传到服务器的表单。 所以我有3个文件。
模型Upload.php
<?php
class Upload extends CActiveForm
{
public $image;
public function rules()
{
return array(
array('image', 'file', 'types'=>'jpg, gif, png'),
);
}
}
查看Upload.php
<div class="box">
<div class="body">
<header class="clearfix">
<div class="icons"><i class="icon-picture"></i></div>
<h5 class="pull-left">Upload Your Memes</h5>
</header>
<div class="form">
<?php $form=$this->beginWidget('CActiveForm'); ?>
<?php echo $form->errorSummary($model); ?>
<?php echo $form->label($model,'image'); ?>
<?php echo $form->fileField($model,'image') ?><br>
<?php echo CHtml::submitButton('Submit'); ?>
<?php $this->endWidget(); ?>
</div>
</div>
</div>
Controller.php这样
<?php
class MemeController extends AdminController {
public function actionUpload() {
$model=new Upload();
if(isset($_POST['image']))
{
$model->attributes=$_POST['image'];
$model->image=CUploadedFile::getInstance($model,'image');
if($model->save())
{
$model->image->saveAs('/volume1/web/memes/templates/test.png');
$this->redirect(Yii::app()->request->urlReferrer);
}
}
$this->render('upload', array('model'=>$model));
}
}
关于我为什么会这样做的任何想法 错误500 MemeUpload及其行为没有名为“getErrors”的方法或闭包。 ? 我在this链接中尝试了一些建议,但这并没有真正帮助。 我在这些更改后得到的是另一个错误,即: 上传你的模因
致命错误:在第10行的/volume1/web/website/protected/modules/admin/themes/admin/views/meme/upload.php中的非对象上调用成员函数errorSummary()
第10行是
<?php echo $form->errorSummary($model); ?>
任何想法我还能尝试什么?
答案 0 :(得分:0)
未经测试,但我认为您应该在文件字段下面提交错误
echo $form->fileField($model,'image');
echo $form->error($model,'image');
答案 1 :(得分:0)
现在解决了这个问题。 我只使用标准的HTML表单标签,而不是使用Yii提供的标签。 这种方法解决了我所有的错误。