写了一个yii上传功能,测试不成功,来请教下:
模型里面是这样写的:
public function rules()
{
return array(
array(‘image’,’file’,’types’=>’jpg,gif,png’),
);
}
控制器里面是这样写的:
public function actionCreate()
{
$model=new Message;
if(isset($_POST[‘Message’]))
{
$model->attributes=$_POST[‘Message’];
$file=CUploadedFile::getInstance($model,’image’); //获取表单名为filename的上传信息
$filename=$file->getName(); //获取文件名
$filesize=$file->getSize(); //获取文件大小
$filetype=$file->getType(); //获取文件类型
$model->image=$filename; //数据库中要存放文件名
//$filename1=iconv(“utf-8”, “gb2312”, $filename);//这里是处理中文的问题,非中文不需要
//$uploadfile=”upload_image”;
//$file->saveAs($uploadfile,true);
//$model->attributes=$_POST[‘Message’];
$model->image = $file;
if($model->image)
{
$newName = time().’.’.$model->image->extensionName;
$model->image = $newName;
}
$file->saveAs(‘uplode_img’,true);
if($model->save())
{
echo “ok”;exit();
}
}
$this->render(‘create’,array(
‘model’=>$model,
));
}
视图里面这样写的:
<div class=”row”>
<?php echo $form->labelEx($model,’image’); ?>
<?php echo CHtml::activeFileField($model,’image’); ?>
<?php echo $form->error($model,’image’); ?>
</div>
我上传图片的文件夹是uplode_img,它和protected是同级的。
现在问题是我图片上传之后没有保存到uplode_img里面。
请各位前辈帮我看下了,谢了。
if ($uploadedFile != null) {
$uploadedFile->saveAs(Yii::app()->basePath . ‘/../images/’ . $fileName); //图片上传路径
}
Yii::app()->basePath是到protected目录,需要加个..返回到上层目录.