我的用户可以一个接一个地上传个人资料图片,但是他们可以随意上传个人资料图片。文件名中的自动增量编号
假设用户1上传的图像,此代码将其存储到我的上传文件夹:
<?php
$fileData = pathinfo(basename($_FILES["fileToUpload"]["name"]));
$fileName = 'user_id_#1#_profilepic_#' . uniqid() . '#.' . $fileData['extension'];
$target_path = "uploads/" . $fileName;
while(file_exists($target_path)) {
$fileName = 'user_id_#1#_profilepic_#' . uniqid() . '#.' . $fileData['extension'];
$target_path = ($_SERVER['DOCUMENT_ROOT'] . "uploads/" . $fileName);
}
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_path)) {
echo "The image was successfully uploaded. <a href='index.php'>Add another image</a>";
}
else {
echo "There was an error uploading the file, please try again!";
}
?>
需要更换,因为它找到了图像的噩梦后来在这个uniqid()正确的顺序。
我想要的图像 - 上传后 - 看起来像这样:
user_id_#1#_profilepic_#1#.jpg
user_id_#1#_profilepic_#2#.jpg
user_id_#1#_profilepic_#3#.png
user_id_#1#_profilepic_#4#.gif
user_id_#1#_profilepic_#5#.jpg
and so on...
我怎样才能做到这一点?到目前为止我还没有任何想法。
为什么不使用类似时间戳的东西呢? '$ fileName ='user_id_#1#_profilepic_#'。时间() 。 '#'。 。 $ fileData ['extension'];' – AbraCadaver
,因为我并不知道这个选项,但现在我想知道当我想显示不同的图片时,我怎么可能读出这个名字? 如果我在我的文件名中有一个自动增量编号,我可以从最高的数字开始,并在点击时移动到较低的数字。但是,如果有一段时间涉及到文件名,那就行不通了,对吗? – Maxischl
'$ users_files = glob('user_id_#1#_profilepic _#*。*');' – AbraCadaver