Name: | Bobo |
Titel: | Problem mit imageScaletoFit und cfimage write |
Inhalt: | Ich habe folgendes Problem: Ich lade ein Bild (jpg) auf den Server und korrigiere mit Erhaltung der Proportionen die Größe auf maximal 710 Pixel. Danach will ich die Datei auf dem Server wieder überschreiben. In manchen Fällen macht er das auch (wenn die Datei wenige Farben hat (z.B. Screenshot, Abbildungen u.ä.) sobald ich aber ein Foto nehme mit vielen Farben stürzt er bei dem Befehl <cfimage action="Write" source="#ImgVariable#" destination ="#ExpandPath('.')#/prjpic/#EditID#/#Dateiname#.#DateiExt#" overwrite = "true"> mit der Fehlermeldung ab, dass die Datei nicht vorhanden ist. Ist sie dann auch nicht mehr, obwohl ich vorher kontrolliert habe dass sie da war. Wenn ich diesen nur Befehl rausnehme funktioniert alles einwandfrei, nur dass Foto ist dann natürlich nicht skaliert. Ich vermute dass es ein Performance Problem nach diesem Befehl gibt, der unmittelbar davor läuft: <cfset imageScaletoFit(ImgVariable,'710','710','highestPerformance') /> Ich habe schon mit den interpolationen herumgespielt und sie sogar weggelassen habe. Immer mit dem gleichen Ergebnis. Also bei wenigen Farben läuft das Skript in allen Varianten problemlos durch, wenn es mehr werden ist selbst die in Zeile 1 hochgeladene Datei nicht mehr da... Hat jemand von Euch eine Idee? Der gesamte Code des Abschnitts: <cffile action="upload" destination="#ExpandPath(".")#/prjpic/#EditID#/" nameConflict="overwrite" fileField="Form.bild1" mode="777"> <cfset Dateiname=cffile.ServerFileName><cfset DateiExt=cffile.ServerFileExt> <Cfif (CFFILE.ServerFileExt IS "jpg") OR (CFFILE.ServerFileExt IS "JPG") > <!--- Überprüfung der Größe des Photos ---> <cfimage action="info" source="prjpic/#EditID#/#Dateiname#.#DateiExt#" structname="viatoInfo"> <cfimage action="read" name="ImgVariable" source="prjpic/#EditID#/#Dateiname#.#DateiExt#" /> <cfif viatoInfo.width GT viatoInfo.height> <!--- Bild breiter als hoch = Querformatbild ---> <cfif viatoInfo.width LT 480> <!--- dann ist das Bild zu klein und muss gelöscht werden ---> <cffile action="delete" file="#ExpandPath('.')#/prjpic/#EditID#/#Dateiname#.#DateiExt#"> <cflocation addtoken="No" url="fpProjectsEditMainPicError.cfm?filemessage=Das von Ihnen hochgeladene Bild ist zu klein! Minimale Höhe/Breite 480 Pixel!&EditID=#EditID#"> </cfif> <!--- proportional Skalieren ---> <cfset imageScaletoFit(ImgVariable,'710','710','highestPerformance') /> <!--- Speichern der Änderung ---> <cfimage action="Write" source="#ImgVariable#" destination ="prjpic/#EditID#/#Dateiname#.#DateiExt#" overwrite = "true"> <cfelse> <!--- hier ist es ein Hochformatbild ---> <cfif viatoInfo.height LT 480> <!--- dann ist das Bild zu klein und muss gelöscht werden ---> <cffile action="delete" file="prjpic/#EditID#/#Dateiname#.#DateiExt#"> <cflocation addtoken="No" url="fpProjectsEditMainPicError.cfm?filemessage=Das von Ihnen hochgeladene Bild ist zu klein! Minimale Höhe/Breite 480 Pixel!&EditID=#EditID#"> </cfif> <!--- proportional Skalieren ---> <cfset imageScaletoFit(ImgVariable,'710','710','highestPerformance') /> <!--- Speichern der Änderung ---> <cfimage action="Write" source="#ImgVariable#" destination ="#ExpandPath('.')#/prjpic/#EditID#/#Dateiname#.#DateiExt#" overwrite = "true"> </cfif> <!--- Dann haben wir den richtigen DateiTyp, Datei ist da und in der Größe standadisiert - dann können wir auch die Datei zum Hauptbild umbenennen ---> <cffile action="rename" source="#ExpandPath(".")#/prjpic/#EditID#/#Dateiname#.#DateiExt#" destination="#ExpandPath(".")#/prjpic/#EditID#/mainpic.jpg" nameconflict="overwrite"> <cflocation addtoken="No" url="fpProjectsEdit.cfm?EditID=#EditID#"> <cfelse> <!--- falscher Dateityp - dann löschen wir die Datei natürlich wieder---> <cffile action="delete" file="#ExpandPath('.')#/prjpic/#EditID#/#Dateiname#.#DateiExt#"> <cflocation addtoken="No" url="fpProjectsEditMainPicError.cfm?filemessage=falscher Dateityp&EditID=#EditID#"> </cfif> |
![]() |
|
|