2017-05-31 9 views
3

Yii2フレームワークのアップロード/更新機能に問題があります。Yii2:ストリームを開くことに失敗しました:そのようなファイルまたはディレクトリがありません

私の更新機能:

public function actionUpdate($id) { 
    $model = $this->findModel($id); 
    //  $model->scenario = 'update'; 

    if ($model->load(Yii::$app->request->post()) && $model->save()) { 
     $uploadDir = Yii::getAlias('@web/web/uploads') . Yii::getAlias('@web/web/uploads'); 
     $uploadPath = Yii::getAlias('@web/web/uploads'); 

     $model->save(); 
     $imageProject = $model->id; 

     //Main Image 
     $image = UploadedFile::getInstance($model, 'main_image'); 

     if ($image) { 
      $imgProject = 'project_' . $imageProject . '.' . $image->getExtension(); 
      $image->saveAs($uploadDir . '/' . $imgProject); 
      $model->main_image = $uploadPath . '/' . $imgProject; 
     } 

     if ($model->upload()) { 
      $model->save(); 

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

そして、私のparams.phpファイル:

return [ 
'aliases' => [ 
    '@projectImgPath' => '@webroot/web/uploads', 
    '@projectImgUrl' => '@web/web/' 
] 

]。

私は自分のフォームでファイルをアップロードすると、私はこのエラーを持っている:

move_uploaded_file(/web/uploads/web/uploads/gallery_1_3.png): failed to open stream: No such file or directory 

誰もがthank`s ...私を助けることができます!

+0

のいずれかのパスの問題やフォルダのパーミッション(077)問題を交換してください。エラーは、パスの問題が 、 –

+0

は、それが作品、 '返す[ 'エイリアス' => [ '@projectImgPath' => 'ウェブルート/ウェブ/アップロード@' を願っ存在言う '@projectImgUrl' => 'ウェブ@ /' ] $ uploadDir = Yii :: getAlias( '@ web/uploads')と同じです。 Yii :: getAlias( '@ web/uploads'); $ uploadPath = Yii :: getAlias( '@ web/uploads'); –

+0

こんにちは! は今、私のコードは次のとおりです。 '@projectImgPath' => '@ Webルート/ウェブ/アップロード'、 '@projectImgUrl' => '@ウェブ/'、 ------------ ----------------------- $ uploadDir = Yii :: getAlias( '@ web/uploads').Yii :: getAlias( '@ web /アップロード '); $ uploadPath = Yii :: getAlias( '@ web/uploads'); もう一度動作しません... –

答えて

0
$uploadDir = Yii::getAlias('@web/web/uploads') . Yii::getAlias('@web/web/uploads'); 

$uploadDir = Yii::getAlias('@web/web/uploads'); 
関連する問題

 関連する問題