在yii2的高级应用程序中保存图像
在model在yii2的高级应用程序中保存图像,yii2,yii2-advanced-app,Yii2,Yii2 Advanced App,在modelmembers中有一个名为photo的字段。我想访问照片 从前端和后端。因此,我在backend\web\uploads和frontend\web\uploads中创建了两个名为images的文件夹,我的想法是将照片同时保存在后端和前端。 如果我必须在frontend\backend中保存图像,我会使用此代码 if($model->photo != null) { $mod
members
中有一个名为photo
的字段。我想访问照片
从前端和后端。因此,我在backend\web\uploads
和frontend\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
,并将图像仅保存到一个位置
在您的情况下,您应该将保存代码复制到前端和后端文件夹
例如:
您可以将上载文件夹放在公用文件夹中。您的保存代码现在应该引用文件夹:
$model->photo->saveAs('@common/uploads/photo/'.$model->id."_".$model->photo);
然后,您可以将基本图像url保存在应用程序的
param
配置中,并在视图中使用它。您可以创建一个symbolyc链接,这样就不必将文件保存在两个目录中
在linux中,只需从控制台运行ln命令,例如,您有backend\web\uploads目录,然后将frontend\web\uploads作为指向后端目录的符号链接
在linux中,只需运行:
ln -s backend/web/uploads frontend/web/uploads
在windows中,打开command promt,转到yii2目录并运行:
mklink /D frontend\web\uploads backend\web\uploads
请注意,mklink输入的顺序与linux中的ln命令相反。请注意:某些主机设置不允许用户创建符号链接。您可以让提供商为您设置。