2016-06-29 5 views
2

文書をサーバーにアップロードする必要があります。個人的なので、文書をパブリックフォルダの外にアップロードする必要があります。ファイルをアップロードする方法を知っています:Yii 2.公開フォルダの外側に文書をアップロードする

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

      $model->document = UploadedFile::getInstance($model, 'document'); 
      if ($model->upload() !== false) { 
       $model->save(); 
      } 

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

URLはアクセスできないため、どのように読みますか?私はファイルを取得するアクションを作成するつもりだったが、Yiiがこの場合に備えて何か準備ができているかどうかはわからないのですか?

答えて

2

はいYiiはファイル出力を送信できますが、独自のアクションを作成する必要があります。

siteControllerで次のコードを仮定します。画像出力に特有です。他のファイルを出力するのと同じ方法で使用できます。

public function actionImage($image_path) { 
     Yii::$app->getResponse()->sendFile(Yii::getAlias('@image_uploads') . $image_path); 
} 

今画像srcがYii2でファイル出力を送信するために

だから、基本的な機能は

のYiiで実際のアプリケーションのURLのルートに

<img src="/site/image?image_path=/posts/1.png" />または同等のようなものになります:: $ app-> getResponse() - > sendFile();

\のYii \ウェブの下にあります

\ Response.php

+0

感謝!!。これは非常に便利でした – Eduardo

関連する問題