Coldfusion CFDOCUMENT создает красный X

У меня проблема с вызовом сервер-сервер с помощью ColdFusion.

Предположим, у меня есть два сервера, на каждом из которых есть файл:
www.Content.com/webpage.cfm
www.Badge.com/badge.jpg

Мой исходный код выглядит так:

<cfdocument format="pdf" pagewidth="11" pageheight="8.5">

This is a simple PDF that was created to show issues with content generation on the server. This PDF uses an http:// reference to the badge server to show an image of a badged team member.

<BR />
<BR />

<img src="https://www.badge.com/badge.jpg" />

</cfdocument>

Если я удалю теги CFDOCUMENT, страница будет отображаться идеально, а изображение JPG будет отображаться точно так, как должно. Однако, когда я визуализирую страницу в формате PDF, документ не включает файл JPG, и вместо изображения появляется большой уродливый красный крестик.

Мой веб-администратор предположил, что хотя пользователь может аутентифицироваться на значке и на содержимом, сервер значка может не аутентифицироваться на содержимом или наоборот. Как я могу дать указание coldfusion взять права пользователя у текущего пользователя, вошедшего в систему, и получить изображение?

Я изучил использование CFIMAGE и сохранение файла изображения в ОЗУ содержимого, а затем запись изображения в переменную до рендеринга PDF. Кажется, это вызывает ошибку.

Заранее благодарим вас за отзыв.


person Brad Hines    schedule 17.05.2012    source источник


Ответы (3)


Образ всегда разный? в противном случае вы можете сохранить изображение на своем сервере локально и использовать атрибут localURL

http://www.ravenglass.com/blog/index.cfm/2010/6/9/Including-Images-in-a-PDF-created-in-CFDOCUMENT

Другая возможность может заключаться в том, что SSL не является «доверенным» для CF. Вы можете попробовать получить этот URL-адрес изображения с помощью CFHTTP, и вы узнаете, так ли это. см.: https://stackoverflow.com/questions/1938913/coldfusion-cfhttp-with-ssl-encrypted-page-https-got-an-error

person Henry    schedule 17.05.2012
comment
Могу ли я попросить пример использования CFHTTP для извлечения файла изображения? Документация на adobe.com была... неполной. - person Brad Hines; 17.05.2012
comment
@BradHines stackoverflow.com/questions/1536815/ - person Henry; 17.05.2012

CFHTTP не нужно захватывать изображение по URL-адресу и сохранять его локально. Попробуй это:

<cfscript>
myImg = imageRead("http://i.mycommentspace.com/23/2371.jpg") ;
imageWrite(myImg,"c:\myimage.jpg",0.8);
</cfscript>

Кстати, изображения в CFDOCUMENT, как правило, работают лучше всего, когда вы используете локальные пути, поэтому, как только вы захватили изображение, попробуйте, например, <img src="c:/myimage.jpg" />

person Dave Anderson    schedule 18.05.2012
comment
Возможно, потребуется использовать file:/// перед путем. - person gordon; 26.02.2014

localUrl="yes" (или =true) терпит неудачу для https, для которого создание PDF-файлов CF является болезненно привередливым.

<img src="file:\\\#replace(getCurrentTemplatePath(),"my.cfm")#images\my.png">

Вам придется перемещаться вверх и вниз по каталогам, чтобы добраться до папки \images.

person gordon    schedule 27.12.2016