Author Topic: Problem der Bilddarstellung bei Sonderzeichen in Dateinamen  (Read 4082 times)

0 Members and 2 Guests are viewing this topic.

Offline bash-t

  • Newbie
  • *
  • Posts: 20
    • View Profile
Problem der Bilddarstellung bei Sonderzeichen in Dateinamen
« on: August 26, 2009, 10:19:29 AM »
Hallo zusammen.

Ich weiß, dieses Thema wurde zwar schon des Öfteren hier im Forum angesprochen, aber ich habe noch keine zufriedenstellende Lösung gefunden. Ausserdem meine ich, dass die bisher beschriebenen Probleme mit Sonderzeichen eher die reine Anzeige der Beschreibung, Bildtitel etc. zum Thema hatten, welches Nicky mit der jeweiligen Encodierung der Datenbank erklärt hat.

Ich habe allerdings folgendes Problem: Wenn ein Bild im Dateinamen bereits ein Sonderzeichen enthält (also bspw. Täßt Image.jpg (absichtlich keine korrekte deutsche Rechtschreibung ;) )), so wird die Datei im ACP bei "Check new Images" bereits falsch encodiert dargestellt.
Hier ein kleiner Screenshot, der dies erklärt:


Ein Klick auf den Link zum Bild an dieser Stelle führt logischerweise auch nicht zum Ziel.
Wenn das Bild in der DB gespeichert wird, sieht das Ergebnis folgendermaßen aus:



Titel, Beschreibung, Tags sehen alle gut aus, nur der Dateiname ist falsch encodiert.


Um dem auf den Grund zu gehen, habe ich mir im ACP das Checkimage Formular in der Detailsicht einmal angesehen:

http://img262.imageshack.us/img262/4442/20090826093135.jpg(wegen der Lesbarkeit des Threads als Hyperlink eingefügt)

Daraufhin habe ich mir die checkimages.php genauer angesehen.
(Hinweis: ich habe die bereits modifizierte Version 2.6.2 aus folgendem Thread verwendet http://www.4homepages.de/forum/index.php?topic=19926.0)

Daraufhin habe ich folgende Modifikationen vorgenommen:
Finde:
 $file_type get_file_extension($image_list[$key][$i-1]);
      
$auto_iptc_now = ($imageinfo = @getimagesize(MEDIA_PATH.$cat_path."/".$image_list[$key][$i-1], $info) && $auto_iptc) ? 0;
	
    
$image_name get_file_name($image_list[$key][$i-1]);

Ersetze durch:
$file_type get_file_extension(utf8_decode($image_list[$key][$i-1]));
      
$auto_iptc_now = ($imageinfo = @getimagesize(MEDIA_PATH.$cat_path."/".utf8_decode($image_list[$key][$i-1]), $info) && $auto_iptc) ? 0;
	
    
$image_name utf8_decode(get_file_name($image_list[$key][$i-1]));


Finde:
show_table_separator("<input type=\"checkbox\" name=\"addimage_".$ii."\" value=\"1\"".$checked." /> ".$image_list[$key][$i-1], 2);
Ersetze durch:
show_table_separator("<input type=\"checkbox\" name=\"addimage_".$ii."\" value=\"1\"".$checked." /> ".utf8_decode($image_list[$key][$i-1]), 2);

Finde:
$file_src MEDIA_PATH.$cat_path."/".$image_list[$key][$i-1];
Ersetze durch:
$file_src MEDIA_PATH.$cat_path."/".utf8_decode($image_list[$key][$i-1]);

Finde:
show_hidden_input("image_media_file_".$ii$image_list[$key][$i-1]);
Ersetze durch:
show_hidden_input("image_media_file_".$iiutf8_decode($image_list[$key][$i-1]));

Finde:
$link "<a href=\"".MEDIA_PATH.$cat_path."/".$image_list[$key][$i-1]."\" target=\"_blank\">".$image_list[$key][$i-1]."</a>";
	
      
show_hidden_input("image_media_file_".$ii$image_list[$key][$i-1]);


Ersetze durch:
$link "<a href=\"".MEDIA_PATH.$cat_path."/".utf8_decode($image_list[$key][$i-1])."\" target=\"_blank\">".utf8_decode($image_list[$key][$i-1])."</a>";
	
      
show_hidden_input("image_media_file_".$iiutf8_decode($image_list[$key][$i-1]));



Hinweis: Ein Version der checkimage.php jeweils vor und nach dieser Modifikation habe ich als Datei angehangen.

Nach den Änderungen sieht das Ergebnis auf der ACP Seite so aus:
http://img507.imageshack.us/img507/7880/20090826094954.jpg(wegen der Lesbarkeit des Threads als Hyperlink eingefügt)

Bis auf die ITPC Informationen, die seltsamerweise bei dem Bild mit Sonderzeichen (und nur bei diesem) fehlen, sieht das Ergebnis eigentlich recht gut aus!

Der Datenbankeintrag stellt mich auch soweit zufrieden:


Allerdings erscheint beim Aufruf der Testseite: http://www.pawlikonline.de/temp/4images/details.php?image_id=36 eine 404er Fehlermeldung, obwohl ein Aufruf im Browser auf das Bild direkt (http://www.pawlikonline.de/temp/4images/data/media/3/Täßt Image_01.jpg) funktioniert.

Nun befinde ich mich aber langsam in einer Sackgasse

Es müsste nachgeforscht werden, weswegen
a) die ITPC Informationen nicht aus den Metainformationen des Bildes gezogen werden. (Hängt vermutlich mit meinen Änderungen an der checkimages zusammen, aber ich sehe den Fehler nicht).

b) Wieso wird das Bild nicht angezeigt, trotz korrekter Speicherung des Dateinamens in der Datenbank. Ich vermute noch ein paar notwendige Anpassungen an der functions.php. Dort die Methoden get_file_path und get_media_code. Jeweils die ersten Parameter erhalten den Dateinamen, der evtl. wieder encodiert werden müsste. Allerdings bin ich dort noch auf keinen grünen Zweig gekommen.

Wenn sich jemand an der Stelle besser auskennt und wüsste was zu ändern ist - ich wäre überaus dankbar! :)

Viele Grüße und meinen Dank an diejenigen, die sich die Mühe gemacht haben diesen Post komplett durchzulesen :)

Bash-T
4images Version: 1.7.7

rinaldos

  • Guest
Re: Problem der Bilddarstellung bei Sonderzeichen in Dateinamen
« Reply #1 on: August 26, 2009, 11:15:42 AM »
Das Bild wird zwar nun in der Datenbank korrekt eingetragen, aber das Problem sind nun die Sonderzeichen die ggf Dein System wieder in andere Zeichen umsetzt und schon stimmt der Dateiname nicht mehr ......
4images ist nicht für UTF8 in Dateinamen und anderen Dingen ausgelegt. Da würde vielleicht eine Funktion die Sonderzeichen aus dem Dateinamen rausnimmt mehr Sinn machen.


Offline tom69

  • Jr. Member
  • **
  • Posts: 82
    • View Profile
Re: Problem der Bilddarstellung bei Sonderzeichen in Dateinamen
« Reply #2 on: August 27, 2009, 08:23:23 AM »
Halloo,

tjaaa, das Problem mit den Sonderzeichen habe ich auch....die Lösung , ist jetzt nicht gerade dolle, aber statt : ä, ö usw.   schreibe ich einfach ae, oe usw.

Gruß
Tom

Offline mawenzi

  • 4images Moderator
  • 4images Guru
  • *****
  • Posts: 4.500
    • View Profile
Re: Problem der Bilddarstellung bei Sonderzeichen in Dateinamen
« Reply #3 on: August 27, 2009, 09:39:00 AM »
@ tom69
... 100% ...

@ bash-t
... mit den Regeln zur Dateienbezeichnung aus alten Windows-/Dos-Zeiten fährt man heute immer noch problemlos ...
... das beseitigt zwar noch nicht dein bestehendes Problem, lässt es aber auch garnicht erst aufkommen ... ;)
Your first three "must do" before you ask a question ! ( © by V@no )
- please read the Forum Rules ...
- please study the FAQ ...
- please try to Search for your answer ...

You are on search for top 4images MOD's ?
- then please search here ... Mawenzi's Top 100+ MOD List (unsorted sorted) ...

Offline Nicky

  • Administrator
  • 4images Guru
  • *****
  • Posts: 3.195
    • View Profile
Re: Problem der Bilddarstellung bei Sonderzeichen in Dateinamen
« Reply #4 on: August 28, 2009, 10:36:31 PM »
ahoi,

wie detlef schon erwähnt hat.. "garnicht erst aufkommen" :)
meine persönliche meinung ist genauso wie seine.
sehr oft würde ich gerne ein "/" in meinen files benutzen.. nur das geht überhaupt nicht und das ist gut so ;)
umlaute in den dateinamen zu benutzen: weg damit  :mrgreen:

okay, verstehe du hast dir die mühe gemacht.
V@no hat mal in seinen MODs so ein check zugefügt..
wenn sonderzeichen in dem dateinamen vorhanden ist, wird es per checkimages mit "normalen buchstaben" automatisch ersetzt. = praktisch ohne sich den kopf zu zerbrechen mit den umlauten :)
cheers
Nicky
Your first three "must do" before you ask a question ! (© by V@no)
- please read the Forum Rules ...
- please study the FAQ ...
- please try to Search for your answer ...

nicky.net 4 4images
Signature stolen from mawenzi