J'essaie de convertir une image (jpg) chargée via cfhttp
en données binaires. Je ne peux pas utiliser cffile action="readBinary"
car ce n'est pas un fichier local.Convertir une image du fichier CFHTTP en données binaires avec Coldfusion
Répondre
Voilà comment je gère, et je l'utiliser pour saisir et traiter des centaines d'images par jour avec ColdFusion 8.
<cfhttp
timeout="45"
throwonerror="false"
url="http://domain/image.jpg"
method="get"
useragent="Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12"
getasbinary="yes"
result="local.objGet"
>
<cfset local.objImage = ImageNew(local.objGet.FileContent)>
Une fois que vous avez l'objet image, vous pouvez alors faire ce que vous voulez avec. Enregistrez-le sur le disque, redimensionnez, vous l'appelez :). J'ai évidemment omis toutes mes vérifications d'erreurs (200 codes d'état, est-ce une image, etc), mais cela devrait vous aider à démarrer.
je l'ai fait ce qui suit qui semble fonctionner:
<cfhttp url="http://foo.com/someImage.jpg" method="get" timeout="3" result="resp">
</cfhttp>
<cfreturn resp.fileContent.toByteArray() />
Comment écrire 'resp.fileContent.toByteArray()' dans un fichier? Je veux dire comment écrire des données binaires dans un fichier? – RRK
Juste un petit peu d'évangélisation Railo, re: "Je ne peux pas utiliser cffile action =" readBinary "car ce n'est pas un fichier local." - dans Railo, vous pouvez utiliser cffile pour n'importe quel fichier, même à travers http et ftp. :) –