如何使用yii将上传的文件名添加到数据库中

how to add uploded file name in to database using yii

我想用yii上传文件,我有点做到了。当我点击提交按钮时,文件被保存在它应该在的文件夹中。但是,我也想将文件名添加到数据库中。我怎样才能做到这一点?

这是我的控制器:

public function actionUpload()
{
  $model = new TourImage();
  if (Yii::$app->request->isPost) {
    $model->imageFile = UploadedFile::getInstance($model, ‘imageFile’);
    if ($model->upload()) {
      // file is uploaded successfully
      return;
    }
  }
  return $this->render(‘upload’, [
  ‘model’ => $model
  ]);
  
}

您可以从 UploadedFile.getInstance() 中提取原始文件的名称并将其分配给模型的属性(这通常在您的模型中完成“ TourImage”,在您必须实现的上传方法中。

因此,如果您在控制器操作中有这个:

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

然后,在 TourImage 模型的 upload() 方法中:

$this->your_model_attribute = $this->imageFile->name; // The original name of the file being uploaded

your_model_attributes更改为您要保存文件名的模型的属性。

查看 UploadedFile 对象的 public 属性: https://www.yiiframework.com/doc/api/2.0/yii-web-uploadedfile