coldfusion отказывается декодировать изображение base64 - PullRequest
2 голосов
/ 19 декабря 2011

Пару часов назад я обнаружил, что могу легко обмениваться данными между API-интерфейсом html5-файла и coldfusion, передавая DataUrl, созданный api-файлом, через атрибуты формы и позволяя coldfusion записать для меня файл изображения на сервер.

Это сработало нормально.

Теперь, однако, он отказывается декодировать эти строки base64, которые я передаю.Я уже тестировал строки base64 в других декодерах, и они правильно отображают изображение.Я ничего не изменил в коде.Так может кто-нибудь сказать мне, пожалуйста, что здесь происходит?Мне все еще не ясно, что случилось вчера.Вернулась ошибка Coldfusion: «файл, по-видимому, не закодирован в base64», что, безусловно, было проверено несколько раз.Строка base64, которую я передал тегу cfimage, содержала заголовки, как вы описали.

1 Ответ

3 голосов
/ 20 декабря 2011

Вы можете пропустить тег <cfimage> и использовать тег <cffile>, если все, что вы делаете, это сохраняете его в точности как есть. <cfimage> добавляет кучу накладных расходов и полезен, только если вы планируете изменить изображение перед его сохранением.

Например.

<cffile action="write" file="C:\temp\test-image.jpg" output="#binaryDecode(base64data)#" addnewline="no">

В качестве альтернативы попробуйте ...

<cfset myImage = imageReadBase64(base64data)>
<cfimage action="write" source="#myImage#" destination="C:\temp\test-image.jpg">

Есть ли в вашей строке base64 заголовки?

например. "data:image/jpg;base64,..." в начале строки?

Из памяти imageReadBase64 () поддерживает строки base64 с заголовками и без них.

http://www.cfquickdocs.com/cf9/#BinaryDecode

http://www.cfquickdocs.com/cf9/#ImageReadBase64

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...