Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [php] keine Fehlermeldung bei Dateiupload (https://www.delphipraxis.net/81822-%5Bphp%5D-keine-fehlermeldung-bei-dateiupload.html)

Mazel 4. Dez 2006 14:59


[php] keine Fehlermeldung bei Dateiupload
 
Hallo,

ich bin monentan ein wenig am verzweifeln. Ich möchte über php ein paar Dateien auf meine Website uploaden. Wenn die hochzuladene Datei größer ist als maximal erlaubt kommt bei mir bei viel zu großen Dateien leider keine Fehlermeldung obwohl ein Maximalwert sowohl im html-Formular ein Feld mit MAX_FILE_SIZE existiert und ich selber nochmals Abfrage.
Momentan sieht das alles so aus:
Delphi-Quellcode:
//das Formular
<form enctype="multipart/form-data" action="index.php" method="post" name="uploadform">
  <input type="hidden" name="MAX_FILE_SIZE" value="2097152">
  <input class="inputupload" type="file" name="userfile">
  <input class="inputbutton" type="submit" name="upload" value="uploaden">
</form>

//die index.php
if(isset($_POST["upload"]))
{ //$uploaddir ist gegeben
  if(move_uploaded_file($_FILES["userfile"]["tmp_name"], $uploaddir.$_FILES["userfile"]["name"]))
  { $error = "Die Datei ".$_FILES["userfile"]["name"]." wurde erfolgreich hochgeladen.

";
  }
  else if(($_FILES["userfile"]["size"] > 2097152) || ($_POST["MAX_FILE_SIZE"] > 2097152))
  { $error = "Die Datei ".$_FILES["userfile"]["name"]." &uuml;berschreitet den Maximalwert!

";
  }
  else if($_FILES["userfile"]["error"] == UPLOAD_ERR_PARTIAL)
  { $error = "Die Datei ".$_FILES["userfile"]["name"]." wurde nur teilweise hochgeladen!

";
  }
  else if($_FILES["userfile"]["error"] == UPLOAD_ERR_NO_FILE)
  { $error = "Es wurde keine Datei zum Hochladen angegeben!

";
  }
}
Wenn die Datei größer als 2MB ist, soll ein Fehler ausgegeben und die Datei gelöscht werden. Ist die Datei knapp über 2MB, wird ein Fehler ausgegeben, ist sie viel größer (etwa 10 MB) passiert nichts. Woran liegt das und wie kann ich das ändern?

Ich danke schon im vorraus ;)

Gruß
Mazel

alcaeus 4. Dez 2006 15:08

Re: [php] keine Fehlermeldung bei Dateiupload
 
Moin,

du hast insgesamt 3 Grenzen: erstens die Grenze, die du ueber MAX_FILE_SIZE festlegst. Diese wird vom Browser "kontrolliert", kann aber auch getrost ignoriert werden. Falls die Datei groesser ist als der Wert, der ueber $_POST zurueckkommt, dann steht da UPLOAD_ERR_FORM_SIZE drin.
Die zweite Grenze ist upload_max_filesize; ist eine Datei groesser als das dann wird UPLOAD_ERR_INI_SIZE zurueckgegeben.
Der dritte Fall ist der, der bei dir auftritt: die Gesamtgroesse der uebertragenen Daten muss kleiner als post_max_size sein. Wenn dieser z.B. auf 2M begrenzt ist, und du eine 4M-Datei hochladen willst, dann kommt gar nichts an; und es gibt auch keine Fehlermeldung (bis auf ERR_NO_FILE).

Greetz
alcaeus

Mazel 4. Dez 2006 15:40

Re: [php] keine Fehlermeldung bei Dateiupload
 
Hallo,

danke. Dann müsste doch aber bei mir der letzte else-Zweig aufgrufen werden, weil ERR_NO_FILE als Fehler auftritt, dies geschiet aber nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz