CFHTTP POST, результат - изображение, как сохранить - PullRequest
0 голосов
/ 23 октября 2018

Я нашел сайт, который очищает exif-данные из изображения.Источником может быть загруженное изображение или URL.Я подумал, что, возможно, я мог бы использовать это с CFHTTP, чтобы сделать это автоматически для фотографий, которые я публикую на своем веб-сайте.Я знаю, что, возможно, смогу запустить свои изображения вручную через этот сайт, прежде чем загружать их на свой сайт.Если хотите, назовите это упражнение.

Вот код, который я использую, который в основном соответствует источнику формы на этом очень простом веб-сайте ( ссылка )

<cfhttp method="POST" url="https://www.verexif.com/en/quitar.php" result="result"  >
    <cfhttpparam name="foto_url" type="formfield" value="{myimageurl}">
</cfhttp>

Когда я CFDUMP результат, я получаю следующее: CFDUMP of CFHTTP Result

Когда я пытаюсь использовать DeserializeJSON (result.Filecontent), это дает мне ошибку ColdFusion:

ColdFusion error

Когда я URL-кодирую свой исходный URL-адрес в теге CFHTTP, result.filecontent содержит исходный код исходного веб-сайта.

Как видно на первом изображении выше, в вывод включен файл foto_no_exif.jpg.Это файл, который мне нужно скачать.Как я могу это сделать ?

1 Ответ

0 голосов
/ 23 октября 2018

В вашем текущем дампе у вас есть измененное изображение, но вам нужно получить доступ к нему как к двоичным данным.Вы можете принудительно обработать содержимое файла запроса как двоичные данные, добавив атрибут getasbinary в тег cfhttp.

Рабочий пример:

<cfset imageURL ='https://raw.githubusercontent.com/ianare/exif-samples/master/jpg/long_description.jpg'/>
<cfhttp method="get" getasbinary="yes" charset="utf-8" url="https://www.verexif.com/en/quitar.php" result="result">
    <cfhttpparam name="foto_url" type="formfield" value="#imageURL#">
</cfhttp>
<cfcontent variable="#result.Filecontent#" type="image/jpg" reset="true" />

Запустите его на TryCF.com

...