$_FILES nach upload leer?

  • PHP

  • Taxel
  • 1654 Aufrufe 6 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • $_FILES nach upload leer?

    Hallo Leute,
    in einer Datei ist ein simpler Dateiupload:

    PHP-Quellcode

    1. <form action="add.php" method="post" name="add" enctype="multipart/form-data">
    2. .fc2map Datei hier ausw&auml;hlen:
    3. <input type="file" name="mapfile" value=""><br>
    4. <br /><input name="submit" type="submit" value="Dazu!" />
    5. </form>

    So weit so gut. Doch wenn ich mir in add.php $_FILES mithilfe von

    PHP-Quellcode

    1. $a = $_FILES ['mapfile'];
    2. var_dump($a);

    ausgeben lassen will, dann ist die Ausgabe

    Quellcode

    1. array(0) { }

    Woran kann das denn liegen?
    Cuiusvis hominis est errare, nullius nisi insipientis in errore perseverare.
    Irren ist menschlich, doch im Irrtum zu verharren ist ein Zeichen von Dummheit.

    -Cicero
  • Hi,
    hast du auch eine Datei ausgewählt zum Hochladen? Wenn ja, dann kann es sein, dass post(bzw. upload)_max_size überschritten wurde, bzw. dein Server unzureichend konfiguriert wurde.
    Check am besten per phpinfo() folgendes:
    file_uploads - sollte auf "On" stehen
    post_max_size - sollte groß genug für deine Datei sein
    upload_max_filesize - dito
    upload_tmp_dir - ein existierender Pfad

    Ach und error_reporting(E_ALL); ist immer hilfreich.

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • file_uploads - steht auf on
    post_max_size - 8M
    upload_max_filesize - 20M
    upload_tmp_dir - existiert

    eine Datei wurde angegeben,
    und heißt 8M bei post_max_size, dass das Übergebene maximal 8megabit/-bite lang sein darf?


    noch ne Frage:
    kann ich irgendwie die hochgeladene Datei sofort auf dem Server verzippen?
    Wär nämlich sehr hilfreich.
    Cuiusvis hominis est errare, nullius nisi insipientis in errore perseverare.
    Irren ist menschlich, doch im Irrtum zu verharren ist ein Zeichen von Dummheit.

    -Cicero
  • Was wird dir denn angezeigt, wenn du var_dump($_FILES); machst?

    Taxel schrieb:

    kann ich irgendwie die hochgeladene Datei sofort auf dem Server verzippen?
    Wär nämlich sehr hilfreich.
    Ja.
    Kommt auf deine Berechtigung an. Wenn du die Funktion exec() nutzen kannst, wirds einfach.
    Rechteübersicht * Forenregeln * F.A.Q. * Lexikon
    Suchfunktion * Chat * User helfen User
    Patrioten reden nur davon, dass sie für ihr Land sterben, niemals davon, dass sie für ihr Land töten. (Bertrand Russell)
  • wie testet man denn am besten, ob exec() an is.
    also in der infophp is max_execution_time auf 60.
    wie ginge das dann, die Datei zu verzippen?

    exec(zip -r datei_name.zip /pfad/map.fc2map);
    geht ja nicht
    Cuiusvis hominis est errare, nullius nisi insipientis in errore perseverare.
    Irren ist menschlich, doch im Irrtum zu verharren ist ein Zeichen von Dummheit.

    -Cicero

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Taxel ()

  • Taxel schrieb:

    exec(zip -r datei_name.zip /pfad/map.fc2map);

    PHP-Quellcode

    1. exec('zip -r datei_name.zip /pfad/map.fc2map');
    Wenn dann glaub ich schon mit anführungszeichen.

    Sollte das nicht gehen versuch's mal mit der pclzip library
    Rechteübersicht * Forenregeln * F.A.Q. * Lexikon
    Suchfunktion * Chat * User helfen User
    Patrioten reden nur davon, dass sie für ihr Land sterben, niemals davon, dass sie für ihr Land töten. (Bertrand Russell)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Snip3r ()

  • Mit dieser library würde des doch so aussehen, oder?

    PHP-Quellcode

    1. <?php
    2. error_reporting(E_ALL);
    3. include_once('pclzip.lib.php');
    4. $archive = new PclZip('/maps/Ordner/test.zip');
    5. $v_list = $archive->create('readme.txt, /maps/Ordner/map.fc2map');
    6. if ($v_list == 0) {
    7. die("Error : ".$archive->errorInfo(true));
    8. }
    9. else {echo 'datei verzippt';}
    10. ?>
    Alles anzeigen

    es wird aber - das ganze steht im body - nichts ausgegeben.
    also gar nichts.
    Weder ein Fehler, noch datei verzippt.
    Cuiusvis hominis est errare, nullius nisi insipientis in errore perseverare.
    Irren ist menschlich, doch im Irrtum zu verharren ist ein Zeichen von Dummheit.

    -Cicero