Yii框架上传图片的用法总结,附代码

Yii框架实现图片上传主要有以下几个步骤:1. 创建模型(model),添加上传图片的属性

class Item extends \yii\db\ActiveRecord
{
    public $image;
}

2. 添加验证规则,限制上传图片类型和大小

public function rules()
{
    return [
        [['image'], 'file', 'skipOnEmpty' => false, 'extensions' => 'png, jpg', 'maxSize' => 1024*1024*2],
    ]; 
}

3. 在表单中添加文件输入框

echo $form->field($model, 'image')->fileInput() 

4. 在模型的 upload() 方法中实现上传逻辑

public function upload()
{
    if ($this->validate()) {
        $this->image->saveAs('uploads/' . $this->image->baseName . '.' . $this->image->extension);
        return true;
    } else {
        return false;
    }
}

5. 在controller的 action 中接收上传的图片并保存

public function actionUpload()
{
    $model = new Item();
    if ($model->load(Yii::$app->request->post()) && $model->upload()) {
        // 保存图片路径到数据库
        $model->image = 'uploads/' . $model->image->baseName . '.' . $model->image->extension;
        $model->save();
    }
}

6. 在视图中显示上传的图片

echo Html::img('@web/uploads/' . $model->image);

这是Yii框架实现图片上传的基本流程,需要注意的地方主要有:1. 限制上传图片类型和大小,防止恶意上传

2. 上传文件命名不能重复,否则会 overwrite,需要加一定规则

3. 上传完成后保存文件路径到数据表对应字段

4. 上传目录需要设置写权限`chmod 777`

5. 生产环境需要定期清理无用上传文件

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论