我正在尝试构建一个将图像上传到服务器的表单。所以我有 3 个文件。
-
模型上传.php
<?php class Upload extends CActiveForm { public $image; public function rules() { return array( array('image', 'file', 'types'=>'jpg, gif, png'), ); } }
-
查看上传.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>
-
控制器.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)); } }
关于我为什么得到的任何想法错误 500MemeUpload及其行为没有名为"getErrors"的方法或闭包。?我已经尝试了此链接中的建议,但这并没有真正的帮助。这些更改后我得到的只是另一个错误,即:上传您的模因
致命错误:在第 10 行的/volume1/web/website/protected/modules/admin/themes/admin/views/meme/upload.php 中的非对象上调用成员函数 errorSummary()
其中 10 行是 <?php echo $form->errorSummary($model); ?>
任何想法我还能尝试什么?
未测试,但我认为您应该在文件字段下方提交错误,因为
echo $form->fileField($model,'image');
echo $form->error($model,'image');
暂时解决了这个问题。我只是使用标准的HTML表单标签,而不是使用Yii提供的标签。这修复了我遇到的所有错误。