Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel手动移动上传的文件_Php_Laravel - Fatal编程技术网

Php Laravel手动移动上传的文件

Php Laravel手动移动上传的文件,php,laravel,Php,Laravel,我正在使用子域来处理我的图像和其他内容 每次用户上传图片,我总是在后台手动移动图片,这样安全吗 file = $request->file; $filename = $file->getClientOriginalName(); $file->move('/home/subdomain/public/tmp/', $filename); 如果有很多要求,将来会有问题吗 谢谢这样做是安全的,但不能保证文件名是唯一的。我可以上传一个名为myfile.jpg的文件

我正在使用子域来处理我的图像和其他内容

每次用户上传图片,我总是在后台手动移动图片,这样安全吗

   file = $request->file;
   $filename = $file->getClientOriginalName();
   $file->move('/home/subdomain/public/tmp/', $filename);
如果有很多要求,将来会有问题吗


谢谢

这样做是安全的,但不能保证文件名是唯一的。我可以上传一个名为myfile.jpg的文件,你也可以上传另一个名为myfile.jpg的文件,它们会相互重写

最好为每个文件名创建某种散列或唯一ID,并将文件存储在那里。您还可以创建一个具有哈希名称的目录,并将文件存储在该目录中


除此之外,您的功能是安全的。

是的,以这种方式移动图像是安全的

在移动图像之前,您可以使用以下代码为每个图像指定一个唯一的名称

$filename = time().rand(0,9999);
现在,每个图像在您的目录中都有其唯一的名称


希望这有帮助

要确保文件名是唯一的,请将当前时间戳附加到文件名

$file = 'myImage.jpg';
$filename = pathinfo($file, PATHINFO_FILENAME); 
$extension = pathinfo($file, PATHINFO_EXTENSION);

$uniqueName = $filename.'_'.Carbon::now().extension;
注意:如有必要,请包括Carbon\Carbon名称空间


希望这有帮助。

你为什么叫它手动人……我看是自动的。我会把它炸成碎片。我只是想知道它是否安全。因为我尝试过使用文件系统,但一直失败。谢谢你的回答谢谢你的回答!如果需要,还可以将原始名称与此哈希连接起来。:)是的。我使用md5名称和时间是的,现在应该正确处理。