我是Laravel的新手,我正试图通过点击按钮找出移动图像的合适方式。我目前有一个包含未验证图像的文件夹,这些文件显示在控制面板上,管理员可以在这些图片显示在另一页面上之前批准它们。
我目前的解决方案是在图像下方添加一个名为“Accept Image”的链接,该链接将图像名称作为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');
}
答案 0 :(得分:1)
我不确定这是否是所有代码,但确保你有某种访问控制,所以不是每个人都可以做到这一点,否则看起来有人可以传入一些他们可以开始移动的变量几乎任何文件。我还会检查文件上的mimetypes,以确保它们是图像。
另一个解决方案和我认为更多人更喜欢的是将所有文件保存在同一目录中,其中每个文件在数据库表中都有一个相应的记录,这些记录将包含路径,验证,创建和更新等列。然后你只需要从数据库中获取正确的记录来显示图像。