Laravel移动图像从一个文件夹到另一个按钮


Laravel move image from one folder to another with button

我是Laravel的新手,我正试图找出通过单击按钮移动图像的适当方式。我目前有一个包含未经验证的图像的文件夹,这些图像显示在控制面板上,管理员可以在它们显示在另一个页面之前批准它们。

我目前的解决方案是在图像下面添加一个名为"接受图像"的链接,该链接将图像名称作为GET参数传递给另一个文件。这将被发送到另一个页面,该页面将图像从未验证的文件夹移动到已验证的文件夹,然后管理员被重定向回控制面板。这个解决方案很好,但我不确定这是否是一个安全/好的方法。

下面是我的代码:

<a href="/accept/upload?fileName='.$fileName.'">Accept Image</a>

/accept/upload是这样的:

$fileName = htmlentities($_GET['fileName']);
$destinationPath = 'verified-images/';
$sourcePath = 'unverified-images/';
if (File::move($sourcePath.$fileName, $destinationPath.$fileName))
{
  Session::flash('success', 'Success'); 
  return Redirect::to('controlpanel');
} 
else
{
  Session::flash('error', 'Error');
  return Redirect::to('controlpanel');
}

我不确定这是否是所有的代码,但要确保你有某种访问控制,所以不是每个人都能做到这一点,否则看起来就像有人可能会传入一些变量,他们可以开始移动几乎任何文件。我还会检查文件上的mime类型,以确保它们是图像。

另一种解决方案,我认为更多的人更喜欢的是将所有文件保存在同一个目录中,每个文件在数据库表中有一个相应的记录,其中将有path, verified, created和updated等列。然后,您只需要从数据库中抓取正确的记录来显示图像。