Fileuplaod mit PHP error code 2

Diskordier

Neu angemeldet
Registriert
14 Juli 2013
Beiträge
161
Hallo leute ich hab da ein problem wo ich einfach nicht weiter komme

Ihc hab eine ganz einfache Form mit einem input Feld da wähle ich dann ein Bilder aus . mit Post wird das dann in das globale array $_FILES gespeichert. Jendenfalls so nach php Maunal
Nur mein array enthält nur den Bilder name aber size name sind leer und der error code ist 2 was beduetet max file size sei zu hoch was aber auch nicht sein kann da dies in der Form sehr hoch gesetzt ist und auch in der php. ini ist der Upplaod on und die size auf ein giga gesetzt.

[src=html5]<form method="POST" enctype="multipart/form-data" action="<?=@$_SERVER['REQUEST_URI']?>&action=update" >
<label>Bilder auswählen: </label>
<input type="hidden" name="MAX_FILE_SIZE" value="3000000" />
<input id="fileupload" name="fileupload[]" type="file" accept=".jpg,.png,.gif" multiple="multiple">
<input type="submit" name="submit" value="<?=@$submitvalue?>">
</form>
[/src]

Die array ausgabe sieht so aus:

[src=php]$Bilder = $_FILES['fileupload'];[/src]

[src=php]array (size=1)
'fileupload' =>
array (size=5)
'name' =>
array (size=1)
0 => string 'hzugzu.jpg' (length=10)
'type' =>
array (size=1)
0 => string '' (length=0)
'tmp_name' =>
array (size=1)
0 => string '' (length=0)
'error' =>
array (size=1)
0 => int 2
'size' =>
array (size=1)
0 => int 0[/src]

Ich weiss echt nicht warum das nicht funktioniert ??
 
MAX_FILE_SIZE wird AFAIK in Byte angegeben was bei dir mit 3000000 nur 3MB sind. Was in der php.ini steht wäre interessant. Wenn ich falsch liege steinigt mich.
 
Zuletzt bearbeitet:
  • Thread Starter Thread Starter
  • #3
Daran kann es nicht liegen das Image ist 34kb gross. Also sollte das funktionieren
 
Den MAX_FILE_SIZE-Wert könnte dein Browser checken, bevor die Datei hochgeladen wird. Deshalb sollte man sich darauf auch nicht verlassen - ein Nutzer könnte den Wert jederzeit verändert haben. Da das aber in keinem HTML-Standard erwähnt wird, unterstützt das auch kein Browser. Wenn du die Dateigröße client-seitig limitieren willst, kommst du wohl um . Ansonsten: Verzichte auf den MAX_FILE_SIZE-Wert, und limitiere über die PHP-Einstellungen (die deine Nutzer nicht so einfach ändern können).

Für die maximale Dateigröße sind 2 Einstellungen in der php.ini relevant: upload_max_filesize (maximale Bytes in Dateien) und post_max_size (maximale Größe einer Anfrage). Evtl. spielt da auch noch das memory_limit mit rein (verfügbarer Arbeitsspeicher). Wenn der Request an diesen Werten scheitert, hast du auch einen anderen Fehlercode (1).
 
  • Thread Starter Thread Starter
  • #5
Wie schon erwähnt sind diese werte erhöht in der ini


upload_max_filesize=8000M
post_max_size=4000M

Ich hab aber keine Inforamtion darüber gefunden ob man dieses MAX_FILE_SIZE wirklich braucht in der php
 
Vorweg: Limitierungen der File-Size oder des Dateiformats im Browser sind bestenfalls optional. Sie stellen kein Sicherheitsmerkmal dar.
MAX_FILE_SIZE wird nicht benötigt.

3MB sind 3145728 Bytes, nicht 3000000 Bytes.
1024 Bytes -> 1 KB | 1024 KB -> 1 MB


Zunächst einmal sollte PHP Dateiuploads in der entsprechenden Größe akzeptieren.
Dazu gibt es drei Optionen:

1. In der php.ini

[src=text]upload_max_filesize = 3M
post_max_size = 3M[/src]

2. Über .htaccess

[src=text]php_value upload_max_filesize 3M
php_value post_max_size 3M[/src]

3. Über die ini_set-Funktion innerhalb eines PHP-Scripts

[src=php]ini_set('post_max_size', '3M');
ini_set('upload_max_filesize', '3M');[/src]


2. und 3. müssen nicht zwangsweise funktionieren. Das ist abhängig von der Konfiguration von PHP.


Versuch es erst mal mit einem single Upload, danach kannst du es mit einem Multi-Upload versuchen.
 
Zurück
Oben