File Upload

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • File Upload

    Moin,
    ich hoffe irgendjemand kann mir sagen, ob es die Variable $HTTP_POST_FILES in PHP 3.0.17 schon gibt und ob ich einen Fehler in meinem Script habe. Ich versuche einen Dateiupload zu programmieren und habe mir einige Sachen zusammengesucht. Das hochladen ins UploadDir klappt auch, nur bekomme ich keine Daten über die hochgeladene Datei. Ich benutze folgende Funktion:

    <?php
    function input_form(){
    global $PHP_SELF, $HTTP_POST_FILES;
    echo"<html><body>";
    $file = $HTTP_POST_FILES['file']['name'];
    $type = $HTTP_POST_FILES['file']['type'];
    $size = $HTTP_POST_FILES['file']['size'];
    $temp = $HTTP_POST_FILES['file']['tmp_name'];

    $size_limit = "100000"; // set size limit in bytes
    $allowed_types = array("text/plain","text/html"); // etc.

    if ($file){
    if ($size < $size_limit){
    if (in_array($type,$allowed_types)){
    copy($temp, "/UploadDir/".$file);
    echo "The file <tt>$file</tt> was sucessfully uploaded";
    }else {
    echo "Sorry, files of type <tt>$type</tt> are not permitted";
    }
    }else {
    echo "Sorry, your file exceeds the size limit of $size_limit bytes";
    }
    }

    echo "<form enctype='multipart/form-data' action=$PHP_SELF method=post>
    Upload a file: <input name='file' type='file'>
    <input type='submit' value='Upload'>
    </form>";
    echo"</body></html>";
    }


    Besten Dank schon mal in Voraus,
    Jonk

  • #2
    $HTTP_POST_FILES gibt's laut Handbuch erst seit Version 4.0.0. Schau dich nochmal in Kapitel 19. Steuerung von Dateiuploads um.
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Apache/PHP3 Problem

      Das hat mir leider nicht weitergeholfen. Ich habe mittlerweile herausgefunden, dass es evtl. an der Konfiguration zwischen Linux, Apache und PHP3 liegen könnte. Das Problem ist, das der Upload ohne File klappt, d.h., dass Variablen zurückgegeben werden. Wenn ich eine richtige Datei hochladen möchte, bricht die Verbindung zum Server ab. (IE-Meldung: Zero sized reply) Die Datei wurde aber hochgeladen, ich kann sie nur nicht weiterverarbeiten.

      Ich habe mir daraufhin die error_log des Apache mal angeschaut und folgende Fehlermeldung gefunden, mit der ich leider nichts anfangen kann:

      [date...][notice]child pid xxxx exit signal Segmentation fault (11)

      Kann da jemand etwas mit anfangen und mit evtl. sagen was ich ändern muss?

      Danke Jonk

      Kommentar


      • #4
        Segmentation Fault bezeichnet einen Schreibzugriff auf einen nicht reservierten (oder von einem anderem Task reservierten) Speicherbereich. Im Klartext heißt das, das php oder der Webserver nicht genug Speicherplatz reserviert haben, um deine Datei entgegenzunehmen.

        Such mal in der php.ini nach post_max_size und upload_max_filesize. Die Standardwerte dafür sind 8M bzw. 2M, vielleicht fehlt da ja das M.
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar


        • #5
          Die Angaben in der php3.ini für die Maximalwerte sind folgendermaßen angegeben:
          memory_limit = 8388608
          upload_max_filesize = 2097152

          also in Byte.
          Gibt es dafür evtl. auch Einträge in den Konfigurationsdateien des Apache?

          Kommentar

          Lädt...
          X