2011-01-14 17 views
1

Bitte,Hochgeladenes Bild in TMP ist ohne Dateiendung?

Nach Bild hochladen, ist Datei noch in TMP-Ordner, und wenn ich echo:

$_FILES['file']['tmp_name'] 

Im erhalten, zum Beispiel:

/tmp/phpZnmIfT 

Bild ohne Verlängerung So hochgeladen ist ?! Ist diese "normale" oder irgendeine PHP GD Konfiguration nicht vorhanden?

Vielen Dank im Voraus

Antwort

3

gespeichert. PHP speichert die Datei mit einem temporären Namen, den Sie sehen. Immerhin könnten zwei oder mehr Leute dieselbe Datei "file.doc" hochladen, und wenn PHP diesen Namen zum Speichern auf dem Server verwendet, überschreibt man den anderen.

Sie können den ursprünglichen clientseitigen Dateinamen mit $_FILE['file']['name'] abrufen. Vollständige Details zur Struktur des $ _FILE-Arrays sind here.

+0

+1 für die manuelle Referenz - Beachten Sie, dass (im Gegensatz zu dem, was manche Leute glauben wollen) Sie nicht unbedingt den ursprünglichen Client-Verzeichnispfad und Dateinamen, nur den Dateinamen –

+0

Glücklicherweise streichen die vernünftigen Browser die Pfadinfo aus, da das ein bisschen ein Privacy-Loch wäre. –

2

Die Dateien werden in das temporäre Verzeichnis mit einem einzigartigen (und temporär) Name hochgeladen.

Sie müssen die Datei an den endgültigen Speicherort verschieben und mit move_uploaded_file() entsprechend benennen.

Das erste Verwendungsbeispiel ist, was Sie wollen.

+0

Ich bin ziemlich neu ... Danke :) – Bobo

0

Wenn Sie den Rest des Arrays $_FILES für Ihren Upload untersuchen, erhalten Sie den ursprünglichen Upload-Namen sowie den Mime-Typ der hochgeladenen Datei, mit der Sie weitere Aktionen für die Datei ausführen können Nach dem Upload (wie Verschieben/Umbenennen mit move_uploaded_file(), wie das vorherige Poster suggeriert).

0

Ja, es ist normal. Der Dateityp (MIME-Typ) wird in $_FILES['userfile']['type']

Verwandte Themen