Wie benenne ich eine hochgeladene Datei um, bevor ich sie in einem Verzeichnis speichere?
Lesezeit: 3 Minuten
George Edward Portillo
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 in das Verzeichnis speichert, und das ist auch meine Vermutung move_uploaded_file() ist derjenige, der den Namen dafür festlegt.
Wie kann ich den Namen meiner Datei in eine Zufallszahl ändern?
Ich habe versucht, Variablen wie die zu ändern $_FILES[“file”][“name”] und ersetzen Sie es durch die $Dateiname; Variable, damit der neue Name gespeichert werden kann.
Ben Glück
Sie können den Namen der Datei einfach ändern, indem Sie den Namen der Datei im zweiten Parameter von ändern move_uploaded_file.
Geändert, um Ihre Frage widerzuspiegeln, wird eine Zufallszahl basierend auf der aktuellen Zeit erstellt und die Erweiterung aus der ursprünglich hochgeladenen Datei angehängt.
Besser verwenden microtime() um stattdessen einen Zeitstempel zu generieren rand. Wenn der Zufallswert mit einem bereits verwendeten Wert kollidiert, würde die Datei ohne Warnung überschrieben.
– tmh
9. September 2013 um 19:49 Uhr
Das OP verwendet file_exists()wenn er es also richtig verwendet, besteht eine Wahrscheinlichkeit von 0 %, dass dies passiert.
– Ben Glück
9. September 2013 um 19:54 Uhr
war eine großartige und einfach zu verwendende Antwort von Ben Fortune. Danke Ben
– Benutzer2491321
4. Januar 2015 um 16:17 Uhr
Wir können benutzen time() außerdem ist es robuster.
– Mihir Ujjainwal
25. Februar 2015 um 18:34 Uhr
Dies beantwortet die Frage, verarbeitet jedoch nicht das Abrufen der Datei nach dem Hochladen. Die Verwendung von file_exists ist gut, um zu vermeiden, dass die Datei mit demselben Namen beim Hochladen überschrieben wird. Aber wie können Sie diese Datei danach abrufen? Ich würde lieber eine eindeutige ID in der Datenbank verwenden und jede hochgeladene Datei mit dieser eindeutigen ID speichern (umbenennen) (in der DB haben Sie im selben Datensatz den ursprünglichen Dateinamen und die eindeutige ID). Rufen Sie die Datei anhand ihrer eindeutigen ID ab und zeigen Sie die Datei mit ihrem Dateinamen an/laden Sie sie herunter. Wie wir die Datei auf dem Server speichern und wie sie angezeigt oder heruntergeladen wird, ist unterschiedlich.
– Adrian P.
7. Juli 2015 um 15:31 Uhr
Sie vermuten richtig. Lesen Sie die Handbuchseite für move_uploaded_file. Stellen Sie den zweiten Parameter auf den Ort ein, an dem Sie die Datei speichern möchten.
Wenn es nicht funktioniert, stimmt etwas mit deinem nicht $fileName. Bitte poste deinen aktuellsten Code.
Die move_uploaded_file wird false zurückgeben, wenn die Datei nicht erfolgreich verschoben wurde. Sie können etwas in Ihren Code einfügen, um Sie in einem Protokoll zu warnen, wenn dies passiert, das sollte Ihnen helfen, herauszufinden, warum Sie Probleme beim Umbenennen der Datei haben
9886100cookie-checkWie benenne ich eine hochgeladene Datei um, bevor ich sie in einem Verzeichnis speichere?yes