为了账号安全,请及时绑定邮箱和手机立即绑定

在 Laravel 中同时上传多个文件而不重复

在 Laravel 中同时上传多个文件而不重复

PHP
慕姐8265434 2022-01-08 17:39:38
我使用此代码在 Laravel 中一起上传多个文件。但是,所有名称文件都会重复。请指导我。if (is_array($files) || is_object($files)) {    foreach ($files as $file) {        $name = time().'.'.$file->getClientOriginalExtension();        $file->move(public_path('uploadmusic'), $name);        PostPhoto::create([            'post_id' => $post->id,            'filename' => $name        ]);    }}1568314601.png1568314601.png1568314601.png
查看完整描述

1 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

的精度time()仅为一秒 -在循环中为每个文件time()分配时,没有足够的时间来报告不同的值$name。


附加其他内容,例如调用\Illuminate\Support\Str::random()以使每个名称都是唯一的。


根据要求,您可能会考虑完全省略文件名中的时间戳,而改用类似的东西md_file()。


$name = implode('.', [

    md5_file($file->getPathname()),

    $file->getClientOriginalExtension()

]);

这也有助于防止重复文件进入您的存储设备。


查看完整回答
反对 回复 2022-01-08
  • 1 回答
  • 0 关注
  • 237 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号