我使用此代码在 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()
]);
这也有助于防止重复文件进入您的存储设备。
- 1 回答
- 0 关注
- 237 浏览
添加回答
举报
0/150
提交
取消
