Yii,从$ _FILES保存图像,但不使用模型

时间:2012-05-14 14:04:45

标签: frameworks yii ckeditor

这可能吗? 这是一个模型

  CUploadedFile::getInstance($model,'newsimage');
  $model->image->saveAs("image\path")

但我不想创建一个模型,因此我可以保存我的图像。

我真正需要的是......我正在尝试使CKEditor的“上传图像”功能正常工作,但我需要一个脚本来保存图像。 当我点击“上传图片”按钮时,我只是调用一个动作,然后我可以使用$_FILES访问我选择的图片,但我似乎无法将文件保存到目标目录。 / p>

是否可以将文件保存到目标路径(例如“C:\ myProject \ images”)而不使用模型?

编辑:

这是我稍后发现的解决方案 我上传的文件位于$_FILES['upload']所以..

$temp = CUploadedFile::getInstanceByName("upload");  // gets me the file into this variable (  i gues this wont work for multiple files at the same time )
$temp->saveAs("D:/games/" . $temp->name);  // full name , including the filename too.

1 个答案:

答案 0 :(得分:8)

假设“没有模型”=“没有数据库表”

您只需从模型目录中的CFormModel扩展UploadForm.php

class UploadForm extends CFormModel
{
    public $upload_file;

    public function rules()
    {
        return array(
        array('upload_file', 'file', 'types'=>'jpg,jpeg,gif,png','maxSize'=>10*1024*1024),
        );
    }

    /**
     * Declares attribute labels.
     */
    public function attributeLabels()
    {
        return array(
            'upload_file'=>'Upload File',
        );
    }

}

并在您的控制器中

$model->upload_file=CUploadedFile::getInstance($model,'upload_file');
$model->upload_file->saveAs("C:\myProject\images\".$model->upload_file->name)