使用UploadedFile扩展为Yii2

时间:2015-05-26 20:34:19

标签: file-upload yii yii2 image-uploading

我想将图片上传到服务器,并尝试使用我在DoingITeasyChannel的YouTube视频中看到的代码取得成功。

但是,它适用于轻量级(150 Kb)文件;我试图上传3.1 Mb图像,程序中断。 这是我的代码:

public function actionCreate()
{
    $model = new Images();

    if ($model->load(Yii::$app->request->post())) {

        $model->file = UploadedFile::getInstance($model, 'file');

        $fileName = $model->category.''.date('U').'.'.$model->file->extension;
            // save the path in db
        $model->location = '/yii_advance/frontend'.'/web/images/'.$fileName;


        $model->file->saveAs(Yii::getAlias('@frontend').'/web/images/'.$fileName);

        // crea y guarda el thumbnail de la imagen subida
        Image::thumbnail(Yii::getAlias('@frontend').'/web/images/'.$fileName, 220, 120)
            ->save(Yii::getAlias('@frontend').'/web/images/thumbs/'.$fileName, ['quality' => 80]);

        $model->thumbLocation = '/yii_advance/frontend'.'/web/images/thumbs/'.$fileName;

        $model->save();

        return $this->redirect(['view', 'id' => $model->id]);
}
else {
        return $this->render('create', [
            'model' => $model,
        ]);
    }
}

有人能帮助我吗?

注意: 我没有使用缩略图部分进行测试,我认为该解决方案可以运行" $ model-> save()"并且"返回"完成上传后。

1 个答案:

答案 0 :(得分:0)

好的,就像user1852788说的那样,解决方案是在我的php.ini文件中。 我不得不更改upload_max_filesize属性,限制为2M。

感谢。