我在Laravel中构建电子商务应用程序,它需要保存来自各种页面的图像,例如添加产品,添加请求,更新配置文件等。我已经在控制器文件本身上定义了图像存储位置对于各自的项目。
UserController.php
$targetPath = '/Users/apple/Documents/eCommApp/storage/app/public/uploads/' . $user . '/img/profile/';
ProductController.php
$targetPath = '/Users/apple/Documents/eCommApp/storage/app/public/uploads/' . $user . '/img/product/';
我的问题是,每次通过git提交新代码时,我都需要不断更新远程服务器上的映像存储位置,因为它在本地和远程服务器中不同。
我的问题是:
我们可以在config /中创建一个constants.php,然后只在那里定义所有路径,然后在.gitignore中包含这个文件,以便在推送代码时忽略这个文件吗?
在Laravel中处理图像存储位置是最好的(安全,有效)方式吗?
寻找你的建议,
谢谢
PS:这是保存演出图像的代码。
if ($request->hasFile('ref_img')) {
if($request->file('ref_img')->isValid()) {
$types = array('_original.', '_150.', '_128.', '_64.', '_32.');
$sizes = array('150', '128', '64', '32');
$targetPath = '/Users/apple/Documents/eCommApp/storage/app/public/uploads/' . $user . '/img/gig/';
try {
$file = $request->file('ref_img');
$ext = $file->getClientOriginalExtension();
if ($gig->img == NULL){
$fName = time();
} else {
$fName = basename($gig->img, ".".$ext);
}
$o_name = $fName . array_shift($types) . $ext;
$original = Image::make($file->getRealPath());
$original->save($targetPath . $o_name);
foreach ($types as $key => $type) {
$newName = $fName . $type . $ext;
$newImg = Image::make($file->getRealPath());
$newImg->resize($sizes[$key], null, function ($constraint) {
$constraint->aspectRatio();
});
$newImg->save($targetPath . $newName);
}
$gig->img = 'storage/uploads/' . $user . '/img/gig/' . $fName . '.' . $ext;
} catch (Illuminate\Filesystem\FileNotFoundException $e) {
}
}
}
答案 0 :(得分:4)
使用helpers之类的public_path()
:
$targetPath = public_path($user . '/img/profile/');
此助手将生成Laravel项目中public
目录的完整路径。