burghi'sphp-dummies.de
PHP für Einsteiger und Fortgeschrittenere - an laufenden Scripten erklärt
06.02.2012, 11:08 Uhr - Impressum

Tutorials - Praxis - File Upload - Speichern

Tutorials - Praxis
File 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...:
benutzte Bilder upload/bild.jpg
gesetzt in $_POST 'absenden'
gesetzt in $_FILES 'uploadFile'
<?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";
     }
}
?>
Datei:
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>
Eventuell hat dein Browser das vorherige Bild noch im Speicher und du musst erst mal aktualisieren drücken, oder jemand anderes ist dir mit dem Hochladen dazwischegefunkt *g*


Achtung ! Siehe Seite: Dateirechte !!
© 2004-2005 - Impressum