|
|
Tutorials - Praxis - File Upload - SpeichernTutorials - PraxisFile Upload: Speichern
Hochgeladene Dateien werden von PHP erst einmal in einem Temp-Verzeichnis abgelegt. Nach Abarbeitung des Scripts löscht PHP diese Dateien wieder. Sie sind fort. Das heißt, dass man sie direkt in der empfangenden Datei woanders hin kopieren muss. Dafür gibt es die Funktion copy() Diese braucht 2 Parameter - a) welche Datei und b) wohin "a)" ist leicht zu ermittel - es ist $_FILES['uploadFile']['tmp_name'] "b)" muss man sich halt überlegen - bei mir ist es das Verzeichnis $_SERVER['DOCUMENT_ROOT'] . "/upload"; Vorher aber noch gucken ob Upload überhaupt geklappt hat und so...:
<?php if($_FILES['uploadFile']['error'] > 0 or $_FILES['uploadFile']['size'] <= 0) { echo "Keine oder ungültige Datei"; } elseif($_FILES['uploadFile']['size'] > 100000) { echo "Bild zu groß - maximal 100 KB bitte<br /> ( deins hatte " . ($_FILES['uploadFile']['size'] / 1000) . " KB)"; } elseif($_FILES['uploadFile']['type'] != "image/jpeg") { echo "Datei ist kein gültiges Bild (nur JPEG zugelassen)"; } else { /* wenn alles OK ist */ $quelle = $_FILES['uploadFile']['tmp_name']; $ziel = $_SERVER['DOCUMENT_ROOT'] . "/upload/bild.jpg"; if(@copy($quelle, $ziel)) { echo "Datei erfolgreich hochgeladen<br /> <a target=\"_blank\" href=\"/upload/bild.jpg\">hier klicken</a><br /> ( eventuell dort dann aktualisieren drücken )"; } else { echo "Fehler beim Speichern"; } } ?> FormularQuelltext anzeigen
<html>
<form method="post" action="/script.php" enctype="multipart/form-data"> Datei: <input type="file" name="uploadFile"><br /> <input type="submit" name="absenden" value="Script starten"> </form> </html> Achtung ! Siehe Seite: Dateirechte !! |