【发布时间】:2019-08-03 19:19:11
【问题描述】:
我在服务器上插入多个图像,并使用 (,) 将名称存储在 SQL 数据库中。
if($request->hasFile('images')){
$images= [];
foreach($images=$request->file('images') as $img) {
$name=$img->getClientOriginalName();
$img->move(public_path().'/dpic', $name);
$images[]=$name;
}
}
$test =implode(", ", $images);
$product->images =$test;
图像名称连同一些显示输出的数据一起插入到数据库中。
/tmp/php59iuBb, /tmp/phpdRewVH, PicturesI.jpg, Screenshot.png
我想从输出中删除这个/tmp/php59iuBb, /tmp/phpdRewVH 我该怎么做。
请指导我这样做。
【问题讨论】:
-
这是个好问题。但是您不应该将客户端的原始文件名存储到数据库中。为什么?因为当您以原始名称将上传文件保存在磁盘上时,这是一个覆盖问题。万一,两个用户上传不同的文件和相同的文件名。现有文件将被替换。最好的方法是根据当前日期时间为图像创建一个新的文件名,确保在保存到磁盘和 sql 之前使用具有原始扩展名的唯一名称。