Meine Benutzer können Profilbilder eins nach dem anderen hochladen, aber so oft sie möchten.Auto-Inkrement-Nummer innerhalb des Dateinamens
Lasst uns annehmen Benutzer 1 uploads ein Bild, dieser Code es meinen Uploads-Ordner gespeichert werden:
<?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!";
}
?>
Diese uniqid() ersetzt werden muss, weil es ein Alptraum ist später auf die Bilder zu finden in die richtige Reihenfolge.
Ich möchte die Bilder - nach dem Hochladen - wie folgt aussehen:
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...
Wie kann ich das tun? Ich habe noch keine Ideen.
Warum nicht etwas wie einen Zeitstempel verwenden? '$ fileName = 'user_id_ # 1 # _profilepic_ #'. Zeit() . "#." . $ fileData ['extension']; ' – AbraCadaver
weil ich überhaupt nicht von dieser Option wusste, aber jetzt frage ich mich, wie ich diesen Namen vielleicht lesen könnte, wenn ich die verschiedenen Bilder anzeigen möchte? Wenn ich eine Autoinkrementnummer in meinem Dateinamen habe, kann ich einfach mit den höchsten Zahlen beginnen und zu niedrigeren Zahlen bei Klick gehen. Aber wenn eine Zeit in den Dateinamen involviert ist, wird das nicht funktionieren, oder? – Maxischl
'$ users_files = glob ('user_id_ # 1 # _profilepic _ # *. *');' – AbraCadaver