melahn Posted June 23, 2011 Report Share Posted June 23, 2011 Veyton 4.0.14 Werden in der Artikel-Bildbearbeitung Bilder hochgeladen, die z.B. heißen "15.022_9.jpg", so werden die Bilder zwar in den Datenbanktabellen richtig eingetragen, aber die Datei heißt im Verzeichnis media/images/org/ "15.022_9". Also hier wir alles nach dem ersten Punkt als Endung betrachtet (und weitere Endungen abgeschnitten). Folglich kann dann das Bild weder per Imageprocess aufbereitet und schon mal gar nicht angezeigt werden. Sieht für mich wie ein klarer Programmfehler (=Bug) aus? Kann jemand dieses Fehlerverhalten bestätigen? Link to comment Share on other sites More sharing options...
Matthias Posted June 23, 2011 Report Share Posted June 23, 2011 Ja die Datei wird absichtlich so behandelt. Sonderzeichen oder Umlaute haben auch nichts in Dateinamen verloren. Link to comment Share on other sites More sharing options...
melahn Posted June 23, 2011 Author Report Share Posted June 23, 2011 Danke für die schnelle Rückantwort. Hast Du die Stelle im Sourcecode, wo ich da ansetzen kann um mir das mal anzuschauen. Um einen Überblick über die ca. 20.000 Bilder zu behalten, heißen die Bilder genauso wie die Artikel-Nr. (products_model). Und die Artikel-Nr. sind wieder von den Herstellern vorgegeben (und die verwenden leider auch Punkte). Link to comment Share on other sites More sharing options...
dragon_0000 Posted June 23, 2011 Report Share Posted June 23, 2011 Der Bug ist in der class.FileHandler.php zu finden bei der funktion "public function cleanFileName($file){" Original $file_array = explode('.', $file); $file_name = $file_array[0]; $file_ext = $file_array[1]; [/PHP] Hier die korrekte Lösung um auch Bilder mit einem "." Punkt uploaden zu können: [PHP] $pos = strrpos($file,"."); $file_name = substr($file,0,$pos); $file_ext = substr($file,$pos+1,strlen($file)-$pos); [/PHP] Viele Grüße Alois Link to comment Share on other sites More sharing options...
melahn Posted June 23, 2011 Author Report Share Posted June 23, 2011 Alois, vielen Dank das ist fast die Lösung ... drei Zeilen weiter habe ich noch eine Reg Ex entdeckt, die dort nicht aufgeführte Zeichen entfernt. Da muss der "." noch als gültiges Zeichen rein. Soweit getestet und scheint okay! alt: $validFileName = preg_replace("/[^a-z0-9A-Z-\/-_]/i", "", $validFileName);[/PHP] neu [PHP]$validFileName = preg_replace("/[^a-z0-9A-Z-\/\.-_]/i", "", $validFileName);[/PHP] Irgendeine Chance das diese Änderung in den regulären Veyton Code einfließt und beim nächsten Update damit erhalten bleibt? Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.