yii2高级应用中保存图片

Save Images in advanced application of yii2

我在模型 members 中有一个名为 photo 的字段。我想访问 photo 从前端和后端。所以我在 backend\web\uploadsfrontend\web\uploads 中创建了两个名为 images 的文件夹,我的想法是同时在后端和前端保存照片。 如果我必须在 frontend\backend 中保存图像,我会使用此代码

if($model->photo  != null)
                        {
                            $model->photo->saveAs(\Yii::$app->basePath . '/web/uploads/photo/'.$model->id."_".$model->photo);

                        }

但我不能将此代码用于我的目的,因为我必须将它保存在前端和后端。我该怎么做?

理想情况下,您应该创建像 static.yourdomain.com 这样的静态子域,并将图像保存到仅 一个 位置。

在您的情况下,您应该将保存代码复制到前端和后端文件夹。

例如:

你可以在common文件夹里面有uploads文件夹。您的保存代码现在应该引用文件夹:

$model->photo->saveAs('@common/uploads/photo/'.$model->id."_".$model->photo);

然后您可以将基本图像 url 保存到应用程序的 param 配置中,并在您的视图中使用它。

您可以制作一个符号文件 links 这样您就不必在两个目录中都保存文件。

in linux 只是来自控制台的 运行 ln 命令,例如你有 backend\web\uploads 目录,然后将 frontend\web\uploads 作为后端目录的符号 link。

在 linux 只是 运行:

ln -s backend/web/uploads frontend/web/uploads

在 windows 中,打开命令提示符,转到您的 yii2 目录并 运行:

mklink /D frontend\web\uploads backend\web\uploads

注意 mklink 输入的顺序与 linux[= 中的 ln 命令相反12=]