在Yii2中自动创建文件夹并上载图像

在Yii2中自动创建文件夹并上载图像,yii2,yii2-advanced-app,Yii2,Yii2 Advanced App,我已经创建了。\frontend\web\uploads 这是我拥有的PropertiesControllers.php配置中的函数Create: public function actionCreate() { $model = new Properties(); $date = date('YmdHis'); if ($model->load(Yii::$app->request->post())) {

我已经创建了
。\frontend\web\uploads

这是我拥有的
PropertiesControllers.php
配置中的函数
Create

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

        $date = date('YmdHis');

        if ($model->load(Yii::$app->request->post())) {            
            $file = \yii\web\UploadedFile::getInstance($model, 'url_img');
            if (!empty($file))
                $model->url_img = $date.$file;

            if($model->save())
            {
             if (!empty($file))
              $file->saveAs( Yii::getAlias('@frontend') .'/web/uploads/'.$date.$file);

              return $this->redirect(['view', 'id' => $model->id]);
            }
            return $this->render('create', ['model' => $model]);
        } else {
            return $this->render('create', ['model' => $model]);
        }
    }
当存在
上传
时,它工作。但是我想重定向到
uploads
中的新文件夹,作为
uploads\img

if (!empty($file))
                  $file->saveAs( Yii::getAlias('@frontend') .'/web/uploads/img'.$date.$file);
它显示错误,因为
。/web/uploads/img
不存在


我不知道如何解决这个问题。救救我

我建议您在
$file->saveAs(
之前创建
img
文件夹。在Yii2中,您可以使用
yii\helpers\FileHelper
创建目录。如果您的问题类似于上传中不存在img文件夹,那么您可以使用
yii\helpers\FileHelper
创建文件夹

$path = Yii::getAlias('@frontend')."/web/uploads/img";
\yii\helpers\FileHelper::createDirectory($path, $mode = 0775, $recursive = true);
完整代码

public function actionCreate() {

        $model = new Properties();

        $date = date('YmdHis');

        if ($model->load(Yii::$app->request->post())) {
            $file = \yii\web\UploadedFile::getInstance($model, 'url_img');
            if (!empty($file))
                $model->url_img = $date . $file;

            if ($model->save()) {   


                if (!empty($file)) {
                    $path = Yii::getAlias('@frontend') . "/web/uploads/img";
                    //here you create the folder
                    if (\yii\helpers\FileHelper::createDirectory($path, $mode = 0775, $recursive = true)) {
                        $file->saveAs(Yii::getAlias('@frontend') . '/web/uploads/img/' . $date . $file);
                    }
                }    

                return $this->redirect(['view', 'id' => $model->id]);
            }
            return $this->render('create', ['model' => $model]);
        } else {
            return $this->render('create', ['model' => $model]);
        }
    }
有关FileHelper的更多信息,请单击此处