我正在使用子域来处理我的图像和其他东西。
每次用户上传图片时都安全吗?在我的后端,我总是手动移动它?
file = $request->file;
$filename = $file->getClientOriginalName();
$file->move('/home/subdomain/public/tmp/', $filename);
如果有很多请求,将来会出现问题吗?
由于
答案 0 :(得分:1)
这样做是安全的,但不能保证文件名是唯一的。我可以上传一个名为myfile.jpg的文件,你可以上传一个名为myfile.jpg的不同文件,它们会相互覆盖。
最好为每个文件名创建某种哈希或唯一ID,并将文件存储在那里。您还可以创建一个带有哈希名称的目录,并将该文件存储在该目录中。
除此之外,您的功能是安全的。
答案 1 :(得分:1)
是的,以这种方式安全移动图像。
在移动之前,您可以使用以下代码为每个图像指定一个唯一的名称。
clamp_ip
现在每张图片都会在您的目录中拥有它的唯一名称。
希望这有帮助!
答案 2 :(得分:0)
要确保文件名是唯一的,请将当前时间戳附加到文件名
$file = 'myImage.jpg';
$filename = pathinfo($file, PATHINFO_FILENAME);
$extension = pathinfo($file, PATHINFO_EXTENSION);
$uniqueName = $filename.'_'.Carbon::now().extension;
注意:如有必要,请包含Carbon \ Carbon命名空间。
希望这有用。