php-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,
            ]);
        }

但是,由于网址无法访问,我该如何阅读?我打算创建一个操作来获取文件,但不确定Yii是否已准备好应对这种情况?

解决方法:

是的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->getResponse()->sendFile();

位于下方

\yii\web\Response.PHP

相关文章

1、将Yii2.0advanced版中应用主体frontend或backend应用复制...
Yii2restfulAPI文档一、配置模块:1.Config/main.php:  2...
Yii在framework/i18n/data/%lang%.php文件中有很多翻译.这...
在Yii2中,官方的页面多语言解决方案有两个:方案1,使用Yii...
Yii2.0对数据库查询的一些简单的操作1234567891011121314151...
数据查询User::find()->all();此方法返回所有数据;User:...