Unten ist der Code, den ich verwendet habe, um Dateien in ein Verzeichnis hochzuladen. Es funktioniert gut. Meine Hauptfrage ist:
move_uploaded_file () ist derjenige, der die hochgeladene Datei im Verzeichnis speichert, und ich vermute auch, dass move_uploaded_file () derjenige ist, der den Namen dafür festlegt.
Wie kann ich den Namen meiner Datei in eine Zufallszahl ändern?
Ich habe es unten versucht:
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "image/x-png") || ($_FILES["file"]["type"] == "image/png")) && ($_FILES["file"]["size"] < 100000) && in_array($extension, $allowedExts)) {
if ($_FILES["file"]["error"] > 0) {
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
} else {
$fileName = $temp[0] . "." . $temp[1];
$temp[0] = rand(0, 3000); //Set to random number
$fileName;
if (file_exists("../img/imageDirectory/" . $_FILES["file"]["name"])) {
echo $_FILES["file"]["name"] . " already exists. ";
} else {
move_uploaded_file($_FILES["file"]["tmp_name"], "../img/imageDirectory/" . $_FILES["file"]["name"]);
echo "Stored in: " . "../img/imageDirectory/" . $_FILES["file"]["name"];
}
}
} else {
echo "Invalid file";
}
Ich habe versucht, Variablen wie $ _FILES ["Datei"] ["Name"] zu ändern und durch $ fileName zu ersetzen. Variable, damit der neue Name gespeichert werden kann.
microtime(), um einen Zeitstempel zu generieren, anstattrand. Wenn der Zufallswert mit einem bereits verwendeten Wert kollidiert, wird die Datei ohne Warnung überschrieben.