Bildupload bricht immer ab

DataFox

Erfahrenes Mitglied
Hi Leute

ich habe ein riesen Problem bei 1&1. Auf meiner Website können die User Bilder hochladen, die dann auf dem Server in 3 Größenvarianten abgelegt werden.

Mein Upload funktioniert so:
User wählt auf seinem PC ein Bild aus. Logisch.

Dann wird das Bild hochgeladen und in Originalgröße abgespeichert.

Auf der neuen Seite die der User sieht, wählt er einen Bildausschnitt per JavaScript. Das Originalbild wird zu diesem Zweck in ein IMG-Tag gequetscht und die Größe wird fest vorgegeben (aber mit den richtigen Proportionen!).

Der Upload-Prozess ist also vollständig beendet und hat geklappt. Hat der User den Ausschnitt bestimmt, klickt er auf weiter.

Dann schnappt sich ein Script das Originalbild und verkleinert es in 3 Stufen. Monster-Thumbnail, normales Thumbnail und Mini-Thumbnail.

Meistens funktioniert das auch.

Aber es gibt einen Fall, bei dem gar nichts geht: Wenn das Originalbild zu groß ist, sind alle Thumbnails schwarz oder gar nicht erst vorhanden. Das Script wird also einfach abgebrochen weil es nicht genügend Rechenzeit bekommt.

Frage: Was kann man dagegen tun? Kann man irgendwie VOR dem upload schon festlegen wie groß ein Bild sein darf? Oder ist es ausreichend NACH dem upload zu meckern "dein Bild ist viel zu groß und wird wahrscheinlich nicht richtig verarbeitet werden" Was gibts sonst noch für Tricks?

Oder ist es ratsam zu einem "vernünftigen" Provider zu wechseln, der solch sinnfreie Beschränkungen bei einem 50-EUR-im-Monat-Paket nicht hat

Ich kann mich noch gut dran erinnern das ich bei Domainfactory NIE irgendwelchen Ärger mit zu großen Bildern hatte. Thumbnails wurden IMMER erstellt, egal wie groß die Bilder waren. Leider laden die Leute dank DSL und übertriebenen Digicam-Auflösungen immer 1,5 bis 10 MB Bilder hoch.

Bin für jeden Tipp dankbar

Gruß
Laura
 
Hallo,

also es kann schon gut möglich sein, dass der Provider deinen Scripts nur eine bestimmte Zeit zur Abarbeitung gibt.

Wenn du mit der "Größe" des Bildes die Dateigröße meinst, kannst du einfach die Variable $_FILES['file']['size'] nützen, und die mit einer von dir bestimmten Größe (in KB) vergleichen. Wenn die vom User ausgewählte Datei zu groß ist, lädst du sie einfach nicht hoch und gibts eine Fehlermeldung aus.
Wenn du aber mit der Größe die Abmessungen meinst, sieh dir mal die Funktion "getimagesize" an...

Lg
 
Hi

also die Datei wird vollständig hochgeladen! Ich habe einen Ordner "original". Dort sind immer gigantisch große Bilder drin (10 Megapixel Fotos). Am upload liegt es nicht. Der funktioniert.

Es scheint ganz einfach so zu sein, dass das Script nicht genügend Rechenzeit bekommt um aus dem Monster-Bild Thumbnails zu generieren. Mit dem Ergebnis, das die Thumbnailfunktion lediglich ein schwarzes Bild speichert. Das schwarze Bild ist die Blanko-Vorlage, welche von der Thumbnailfunktion erzeugt wird um das Originalbild dort verkleinert hinein zu kopieren (die in PHP übliche Prozedur).

Code:
$_FILES['file']['size']
kann ich erst abfragen, nach dem das Bild hochgeladen wurde. Leider lässt sich die benötigte Rechenzeit nicht allein an der Dateigröße ausmachen. Mehre Faktoren spielen hier eine Rolle. Mal klappts, mal nicht. Mit dem selben Bild.

Aber in Anbetracht der Tatsache das die Digicams immer mehr MP haben und es den Leuten dank Highspeed-Zugang schnuppe ist, ob sie 50 kb oder 5 MB hochladen, ist es schon arm von 1&1, so eine sinnlose Rechenzeitbeschränkung bei Premiumpaket-Kunden einzubauen. Daher werde ich zu Domainfactory wechseln - dort ist mir eine derartige Beschränkung bisher nicht aufgefallen. Es ist einfach nicht zeitgemäß!

Gruß
Laura
 
Eine Laufzeitbeschränkung ist vor allem eine Ressourcen- und Sicherheitsfrage. Denn auch Logikfehler können zu Endlosschleifen oder Speicherfressern führen.
 
Zurück