同时上传多个文件,Laravel中没有重复项

问题描述 投票:0回答:1

我使用此代码在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.png
1568314601.png
1568314601.png
php laravel file random
1个回答
1
投票

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

附加其他内容,例如调用$name以使每个名称唯一。

根据要求,您可能考虑完全从文件名中省略时间戳,而改用\Illuminate\Support\Str::random()之类的东西。

md_file()

这也可以帮助将重复的文件保留在存储设备之外。

© www.soinside.com 2019 - 2024. All rights reserved.