Problem mit Upload und MIME bei grösseren Dateien

AHelfer

Mitglied
Hi sorry ich weiss von diesen Thema gibt schon ne menge aber ich hab auch schon sicher dutzende von diesen durchgelesen und auch einiges Probiert jedoch klappts trotzdem nicht.. Hier mein Problem:

Ich wollte ein Uploadscript machen. Hab dazu das aus dem tutorial genommen und angepasst.

Hier erstmal das Script:

PHP:
<?php  
error_reporting(E_ALL);
$tempname = $_FILES['bild']['tmp_name'];  
$name = $_FILES['bild']['name']; 
$type = $_FILES['bild']['type'];  
$size = $_FILES['bild']['size'];  
$datum = date("Y_m_d_",time());
$uhrzeit = date("H-i-s-",time());
$bildname = $datum.$uhrzeit.$name;


if($type != "image/gif" && $type != "image/jpeg" && $type != "image/pjpeg") {  
    $err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden keine $type Dateien. $type";  
}  
if($size > "5000000") {  
    $err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 5 MB!";  
}  



if(empty($err)) {  
    move_uploaded_file("$tempname", "images/$bildname");  
    echo "Die Datei $name wurde erfolgreich unter dem Namen $bildname hochgeladen!";  
}  
else {  
    foreach($err as $error)  
    echo "$error<br />";
    echo $type;   
}  
?>

Also wie ihr seht habe ich auch schon copy() durch move_uploaded_file() geändert da ich das hier im Forum gelesen hab besser sei.

Ich hab auch noch $type != "image/jpeg" eingefügt da ich gelesen hab das es sonst teilweise Probleme gibt wenn man nur $type != "image/pjpeg" stehen hat.

enctype="multipart/form-data" habe ich im <form> eingefügt.

Also nun das eigentliche Problem:
Wenn ich "kleine" Dateien hochlade klappt das ohne probleme jedoch sobald ich etwas grösseres hochladen will gibts die fehlermeldung, dass nur gif und jpg erlaubt sind.

also folgende testbilder habe ich versucht hochzuladen
GIF:
100 x 100 = 1KB = OK
250 x 250 = 2KB = OK
2000 x 2000 = 4KB = OK
5000 x 5000 = 20 KB = Fehlgeschlagen

JPG
100 x 100 = 4 KB = OK (mehr KB als das 250 x 250 weil ich da noch test.jpg draugeschreiben hab)
250 x 250 = 2 KB = Fehlgeschlagen

in der php.ini steht: upload_max_filesize 5.2M
Es kahm auch nie die Fehlermeldung das ein File zu gross sei.

Was auch noch ein Problem ist ich versuche ja mit $type das Dateiformat wiederzugeben aber es wird gar keines Wiedergegeben wenn wenn das hochladen ned klappt:

PHP:
 $err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden keine $type Dateien.

Ich habe auch schon versucht dei && durch or zu ersetzten bei der mime kontrolle wie es hier irgendwo im Forum stand. Jedoch ohne Erfolg. Nun bin ich leider langsam am ende meiner ideen und hoffe das Ihr mir das weiterhelfen könnt.

Ich weiss nich was für euch noch wichtig ist deshlab hier noch ein par ini daten:
file_uploads On
post_max_size 8M
safe_mode Off
upload_max_filesize 5.2M

[edit]
Ich habe gerade nochmals versucth was hochzuladen und dann och per echo versucht die restlichen daten wiederzugeben
ist also wirklich so als würde es die Datei nciht abspeichern.. kein tempname, keine size usw..
Warum will es das ned speichern?
[/edit]





PS: Ich bin was php angeht halt noch nicht so der Profi.. lerne erst gerade.
 
Zuletzt bearbeitet:
Hallo!

Hat das Verzeichnis, in das Du die Dateien speichern willst, ausreichende Rechte auf dem Dateisystem?

Du kannst auch die getimagesize() Funktion zum Prüfen auf das richtige Bildformat verwenden. Ist wie ich hier gelernt habe, die bessere Alternative :) .

Grüße

Martin
 
Jup sorry hab ich vergessen zu schreiben.. das verzeichnis habe ich auf 777 gestellt und es gehen ja die kleinen bilder perfekt.. mit namensänderung udn alles.. nur die grösseren bei denen will es ned klappen..

und imagesize()? hab ich schon mal irgendwo gelesen.. aber wusste ich gerade nicht wie einsetzen.. müsste ich nochmals genauer anschauen.. vielleicht versuche ich das dann mal. auf jedenfalls mal danke

für weiter tipps und anregungen bin ich weiterhin dankbar ;)
 
Hallo!

versuch mal mit
PHP:
error_reporting(E_ALL);

ob Du vielleicht eine Fehlermeldung bekommst.

Grüße

Martin

Wie du oben siehst habe ich error_reporting(E_ALL); schon drin in meinem Script.
Jedoch erscheint nie eine Fehlermeldung.

Was ich noch gemacht habe ist die MIME kontrolle ganz gestrichen.. und einfach nur das abspeichern und die ausgabe der Daten verlangt.

move_uploaded_file("$tempname", "images/$bildname");
echo "Die Datei $name wurde erfolgreich unter dem Namen $bildname hochgeladen! <br />";
echo $type.'<br />';
echo $name.'<br />';
echo $tempname.'<br />';
echo $size.'<br />';

und so sieht das dann aus bei einem Bild das klappt: (gif 1000 x 1000 pixel)

Die Datei test1000.gif wurde erfolgreich unter dem Namen 2006_11_23_09-53-49-test1000.gif hochgeladen!
image/gif
test1000.gif
/tmp/phpKuSAKs
2621

und so sieht es aus wenn es nicht klappt: (gif 5000 x 5000 pixel)

Die Datei test5000.gif wurde erfolgreich unter dem Namen 2006_11_23_09-55-09-test5000.gif hochgeladen!

test5000.gif

0

Also scheint es mir so als würde die datei erst gar nicht gesendet oder mitgeliefert vom Formular.

Das kann also doch nicht an meinem Script liegen oder?..
Gibt es irgendwelche Serverseitigen Sperren? Wenn ja wo stehen die bei der php.ini? Damit ich nachsehen kann wie die eingestellt sind.

Deshalb hab ich mir auch noch nicht die Mühe gemacht getimagesize() einzufügen weil wo keine temporäre Datei vorhanden .. kann wohl ein getimagesize() auch nicht gross weiterhelfen oder?

[edit:]
Also da ich noch nicht weiter bin mti dem Problem hab ich aus "verzweiflung" doch mal getimagesize() eingefügt.. das gibt auch brav daten zurück bei einem "kleinen" Bild. Jedoch bei einem grösseren sind natürlich auch keien daten vorhanden.

Also liegt das problem wohl wirklich an der übertragung vom Formular zum PHP-Script. Also das die Datei nicht hochgeladen wird.

Woran könnte das blos liegen?
[/edit]
 
Zuletzt bearbeitet:
Re: AW: Re: Problem mit Upload und MIME bei grösseren Dateien

Hallo!

Wie du oben siehst habe ich error_reporting(E_ALL); schon drin in meinem Script.
Jedoch erscheint nie eine Fehlermeldung.

Sorry, hab ich übersehen.

[edit:]
Also liegt das problem wohl wirklich an der übertragung vom Formular zum PHP-Script. Also das die Datei nicht hochgeladen wird.

Woran könnte das blos liegen?
[/edit]

Ja, sieht danach aus. Aber woran das noch liegen könnte? Keine Ahnung.

Ein Timeout bei 20 KB kann man wohl ausschließen. Würde auch ne Fehlermeldung kommen.
Ebenso würde ich meinen, dass es nicht an einer Maximalgröße von PHP etc. hängt, dafür sind 20KB einfach zu wenig.

Poste doch mal Deinen HTML Code, vielleicht ist da ja was drin, was nicht passt.

Grüße

Martin
 
OOH DU grosse SCH.. *sich selbst eine reinhau* :-(

ich hatte so befürchtungen das ich im PHP einen Fehler habe (da ich das ned so behersche)

Das ich das HTML file kaum mehr angeschaut hab.. dabei hatte ich ganz am Anfang dort auch was reingeschrieben als ich noch im aufbau des php-Scripts war. :-(

und zwar:
HTML:
<input type="hidden" name="MAX_FILE_SIZE" value="5000">

Danke Martin dass du den code wolltest..hab den fehler gesehen als ich es hier einfügen wollte.

Nun werde ich wohl noch ein paar Tests durchführen und hoffe dann das alles Klappt.

Danke nochmals allen für eure unterstützung. und Entschuldigt bitte das ich den fehler nicht früher entdeckt habe.
 
Re: AW: Problem mit Upload und MIME bei grösseren Dateien

Hallo!

Na prima, dann passt es ja und sicher einiges dazugelernt :)

Grüße

Martin
 

Neue Beiträge

Zurück