Mailinglisten-Archive |
hi :) Ich möchte meinen Usern den Upload von Grafiken ermöglichen. Die Grafiken werden dabei automatisch skaliert (Icons, Thumbnails). Das funktioniert mit der Ausnahme von animierten Gifs (jpg-Grafik kann imagemagick nicht erzeugen) sehr gut. ICh möchte allerdings nicht-Grafiken abfangen. Momentan mache ich das sehr primitiv indem ich dne Suffix auf PNG, JPG, JPEG oder GIF checke. Das ist natürlich Unsinn, da der Suffix nichts über den Inhalt der Datei aussagt. Außerdem muss ich herausfinden, ob ImageMagick die Grafik einlesen kann. Ich habe folglich zwei Möglichkeiten: - Mit Imagemagick schauen, ob die Datei als Grafik erkannt wird. Problem: IM erzeugt bei jeder Aktion eine temporäre Datei, auf die die Aktion angewendet wird, auch bei so simplen Dingen wie Dateinfo anzeigen. Wird die Aktion korrekt beendet, so wird die Datei gelöscht. Wird die Aktion allerdings nicht korrekt beendet, so bleibt die Datei liegen. Erkennt folglich IM die Datei nicht als Grafik, so bleibt eine temporäre Datei liegen, ich kann mir die Fehlermeldung von IM auf den Dateinamen parsen und diesen dann manuell entfernen. Das ist natürlich nur suboptimal. Dummerweise konnte ich keine Info darüber finden, wie ich IM dazu kriege, seinen Müll immer wegzuräumen. Auch eine Formatierung der Ausgabe damit ich ich nur gefundenes Format und dann tempfile kriege (oder halt nur tempfile) bringt nichts, da IM stur bei einem nicht erkannten Format mit einer Fehlermeldung abbricht. - Mit file die Datei analysieren lassen Problem: Ich kann zwar ermitteln ob das ganze eine Grafik ist (image data bzw. bitmap data), nicht aber herauskriegen, ob das Format auch von IM akzeptiert wird... Habt ihr eine schlaue Idee wie ich das tmpfile von IM automatisch wegräumen lasse? Eigentlich finde ich es ziemlich frech, dass IM kommentarlos das Dateisystem zumüllt. In der Doku habe ich über dieses Verhalten auch nichts finden können :( ciao :)
php::bar PHP Wiki - Listenarchive