Laravel手动移动上传文件

时间:2015-10-27 07:32:21

标签: php laravel

我正在使用子域来处理我的图像和其他东西。

每次用户上传图片时都安全吗?在我的后端,我总是手动移动它?

   file = $request->file;
   $filename = $file->getClientOriginalName();
   $file->move('/home/subdomain/public/tmp/', $filename);

如果有很多请求,将来会出现问题吗?

由于

3 个答案:

答案 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命名空间。

希望这有用。