[PHP] gerichteter Dateiupload klappt nicht

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Remus, 4. Oktober 2011 .

Schlagworte:
  1. 4. Oktober 2011
    gerichteter Dateiupload klappt nicht

    Moin,

    ich hab folgendes Problem, ich versuche von meiner Seite, auf nem lokalen Webserver laufend wohlgemerkt, eine Datei hochzuladen und diese dann testweise in nem anderem Verzeichnis zu speichern.

    Folgendermaßen sieht der Quelltext des PHP-Scripts aus:

    Code:
    <?xml version="1.0" encoding="utf-8" ?>
    
    
    <?php
    if ((($_FILES["file"]["type"] == "image/X-ms-wmv")
    )
    && ($_FILES["file"]["size"] < 209715200))
     {
     if ($_FILES["file"]["error"] > 0)
     {
     echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
     }
     else
     {
     echo "Upload: " . $_FILES["file"]["name"] . "<br />";
     echo "Type: " . $_FILES["file"]["type"] . "<br />";
     echo "Size: " . ($_FILES["file"]["size"] / 1048576) . " MB<br />";
     echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
    
     if (file_exists("../upload/" . $_FILES["file"]["name"]))
     {
     echo $_FILES["file"]["name"] . " already exists. ";
     }
     else
     {
     move_uploaded_file($_FILES["file"]["tmp_name"],
     "upload/" . $_FILES["file"]["name"]);
     echo "Stored in: " . "../upload/" . $_FILES["file"]["name"];
     }
     }
     }
    else
     {
     echo "Invalid file";
     }
    ?> 
    
    und folgendermaßen das HMTL Pendant:

    Code:
    <form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="upfile" accept="video/X-ms-wmv" />
    <input type="submit" value="Upload" />
    </form>
    
    Als Fehler bekomm ich jedas mal:

    Code:
    
    Notice: Undefined index: file in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\joomla\upload.php on line 5
    Invalid file 
    
    Hoffe jemand kann mir sagen, wo der Knackpunkt liegt. Als MIME-Type hatte ich auch schon den *-Platzhalter genutzt aber irgendwie funzt das nicht. Nutze ne WMV-Datei als Testreferenz.
     
  2. 4. Oktober 2011
    AW: gerichteter Dateiupload klappt nicht

    Hab ich nun gerade mal getestet und alle ersetzt. Aber es kommt die selbe Fehlermeldung.
     
  3. 4. Oktober 2011
    AW: gerichteter Dateiupload klappt nicht

    der undefined index sollte weg sein. der andere fehler liegt hier:

    PHP:
    if ((( $_FILES [ "file" ][ "type" ] ==  "image/X-ms-wmv" )
    image/X-ms-wmv

    sollte es dann immer noch nicht gehen schaust du dir mal per var_dump($_FILES) an was denn alles übertagen wurde.

    im übrigen sei dir gesagt, dass ['type'] ein vom benutzer gesetzter wert ist und nicht korrekt sein muss. man könnte in deinem beispiel parkatisch jede beliebige datei hochladen wenn man den mime-type fälscht.

    um einen korrekten mime-type zu ermitteln gibt es funktionen in php wie z.b.
    PHP: finfo_open - Manual
     
  4. 4. Oktober 2011
    AW: gerichteter Dateiupload klappt nicht

    Das mit dem image/... ist mir selbst gerade aufgefallen. Dachte zuvor es liegt am Datentyp.
    Wo setze ich echo var_dump($_FILES); denn am besten ein ? Bin nicht sehr PHP-versiert kriege hier gar kein Rückläufer.
     
  5. 4. Oktober 2011
    AW: gerichteter Dateiupload klappt nicht

    nach <?php und echo brauchst du nicht, das macht var_dump selbst.
     
  6. 4. Oktober 2011
    AW: gerichteter Dateiupload klappt nicht

    Also bei mir bleibt die Meldung gleich und es ändert sich nichts. Was mich nur stutzig macht. Nun liegt die line 5 nach der Änderung in line 7 und er gibt trotzdem die selbe Meldung aus.

    Kann es eventuell an Joomla! liegen bzw. irgendwelchen Einstellungen ?
    Ich bin mir auch nicht so sicher, wie es mit dem angepeilten Verzeichnis aussieht. Bis dato ist dieses noch nicht angelegt, ich bin mir nicht sicht aber denke bist jetzt, dass es wohl angelegt wird.

    ----

    Hab meinen Fehler gefunden. Danke schon mal Murdoc, bewerten ist derzeit bei dir leider nicht mehr möglich ^^. Hab die falsche upload.php bearbeitet -_-"

    Werde mich wohl nochmal zu Wort melden, wenn es wieder Fehler gibt.


    ----

    Muss ich eigentlich irgendwas beachten, wenn die Videos sonst hochlade ?
    Denn komischer Weise erlaubt mir mein Script nur teilweise Videos hochzuladen. Auch, wenn ich das selbe Video kopiere und umbenenne wird es manchmal nicht akzeptiert und die MIME-Type Prüfung gibt Fehler aus und lässt die Datei nicht durch.
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.