Yii 2.在公共文件夹

时间:2016-06-29 16:21:25

标签: php yii upload yii2

我要求将文档上传到服务器,因为它是个人文件,他们希望将文件上传到公共文件夹之外。我知道如何上传文件:

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是否为这种情况准备好了什么?

1 个答案:

答案 0 :(得分:2)

是的Yii可以发送文件输出,但您仍然需要创建自己的操作。

让我们假设siteController中的以下代码特定于图像输出,您可以使用相同的方式输出其他文件。

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

现在图像src将类似于

<img src="/site/image?image_path=/posts/1.png" />或等效于真实应用程序URL路由

因此Yii2发送文件输出的基本功能是

  

的Yii :: $ APP-&GT; GETRESPONSE() - &GT; SENDFILE();

位于

  

\ YII \网络\ Response.php