getimagesize & leerzeichen

C-H

Erfahrenes Mitglied
Hallo!

Ich habe ein Problem mit der Funktion getimagesize(). Ich habe ein Script, das mir ein Thumbnail generiert in der ich diese Funktion verwende. Das Script rufe ich folgendermaßen auf:
HTML:
imgOriginal.src = "<?=DOCUMENT_ROOT?>/inc/allgemein/thumbnail_creator.php?img=" + iImg + "&_width=&_height=&prozent=" + originalzoom.value;

Im Script verwende ich die übergebene Variable "img" so:
PHP:
$size = getimagesize(urlencode($_GET["img"]));

Das funktioniert auch alles super, allerdings gibt es Probleme, wenn der Benutzer ein Bild mit einem Leerzeichen im Dateinamen verwendet. Nun habe ich auf www.php.net schon gelesen, dass ich den Pfad per rawurlencode() anpassen soll. Allerdings bringt das bei mir nix. Wo liegt mein Denkfehler?
 
Hallo!

Du lässt es also zu dass der User den Dateinamen bestimmt?
Das birgt das Risiko dass u.U. ein schon vorhandenes Bild mit gleichen Dateinamen überschrieben wird.
Ich würde die Wahl des Dateinamens daher selbst in die Hand nehmen und schon beim Upload bestimmen (z.b. durch einen Timestamp).
Zumindest aber würde ich, wenn schon der originale Dateiname verwendet werden soll, evtl. vorkommende Leer- und Sonderzeichen so wie Umlaute ersetzen (str_replace).

Gruss Dr Dau
 
Hallo,

die Leerzeichen zu ersetzen - daran habe ich auch schon gedacht. Allerdings wäre es mir lieber die Original-Dateinamen beizubehalten.
Das Risiko, dass schon vorhandene Dateien überschrieben werden halte ich für gering und vertretbar, da es sich um ein geschlossenes System handelt. Ich riskiere es ehrlich gesagt lieber, dass ein Bild überschrieben wird (ich werde falls es sich realisieren lässt eine entsprechende Abfrage einbauen), als dass die User schreien, wo ihr Bild geblieben ist, bzw. sich beschweren, dass es "einfach so" umbenannt wurde. Mit Argumenten kommt man da bei manchen User-Typen nicht an ("Das soll so sein, basta").
 
Probier mal Folgendes:
Code:
imgOriginal.src = "<?=DOCUMENT_ROOT?>/inc/allgemein/thumbnail_creator.php?img=" + encodeURI(iImg) + "&_width=&_height=&prozent=" + encodeURI(originalzoom.value);
 
Leider hat es auch mit EncodeURI nicht funktioniert. Es kam ja auch im Script das richtige an, nur scheint die Funktion getimagesize() Probleme mit Leerzeichen und anderen Sonderzeichen zu haben.

Nun ja, da ich mich jetzt nicht länger damit beschäftigen will, ersetze ich alles was stören könnte und benenne die Datei vor dem Upload um. Ich freue mich schon auf die ersten User, die sich darüber beschweren grrmph ;-(

Falls aber noch jemand einen genialen Geistesblitz hat, darf derjenige diesen natürlich posten ;-). Da es zu keinem funktionierenden Ergebnis geführt hat, lasse ich das Thema mal offen. Ein Vorschlag an die Moderatoren: Es wäre schön, wenn es statt der einen Schaltfläche "Erledigt" zwei Schaltflächen geben würde "Problem gelöst" und "Problem nicht gelöst". Aber wichtiger wäre, wenn die vorhandene Schaltfläche wirklich genutzt würde (was ich selbst oft genug vergesse). Viellecht schreib ich den Vorschlag mal ins Feedback-Forum.

So long,

Chris
 
Zurück