将图像存储到数据库的正确方法是什么
我应该像images/pagesImages/image.jpg
一样存储图像的填充路径,还是正确的方法只存储图像名称并写下图像应该出现的路径?
我是Laravel的新手,当我更新图像时,我正在更新页面上的图像我发现完整路径存储在数据库中
我可以只存储没有路径的图像名吗?
这是我的控制器
public function editAboutImage()
{
$id = 1;
$image = Text_area::find($id);
$validation = Validator::make(Input::all(), [
'image' => 'sometimes|image|mimes:jpeg,png|min:1|max:250'
]);
if ($validation->fails()) {
return Redirect::to('edit-about')->with('errors', $validation->errors());
}
if (Input::hasFile('image')) {
$file = Input::file('image');
$destination_path = 'images/pagesImages/';
$filename = str_random(6) . '_' . $file->getClientOriginalName();
$file->move($destination_path, $filename);
$image->image = $destination_path . $filename;
$image->save();
}
return Redirect::to('edit-about')->with('message', 'You just updated an image!');
}
澄清我的两个问题
答案 0 :(得分:3)
您可以使用您的模型来存储文件(我的建议)
在模型中,创建一个变量和一个函数来存储图像
对于型号: -
public static $imagePath = 'images/profile_images';
public function getImageAttribute($value)
{
if($value != ''){
return self::getImagePath . '.' . $value;
}
}
public function getImagePath()
{
return self::imagePath;
}
对于控制器: -
像往常一样获取文件名,
在存储
$file->move($this->getImagePath(), $filename);
$image->image = $filename;
试试这个并说结果