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, и появляется большой, уродливый красный крестик X, где иное должно быть на изображении.

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

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

Заранее благодарю за отзыв.

3 ответа

Решение

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

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

Другая возможность может заключаться в том, что CF не доверяет SSL. Вы можете попробовать получить этот URL-адрес изображения, используя CFHTTP, и вы узнаете, так ли это. см. : Coldfusion: CFHTTP с зашифрованной страницей SSL (https://) - получена ошибка

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" />

localUrl="yes" (или же =true) терпит неудачу для https, для которого CF, генерирующий pdfs, болезненно привередлив.

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

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

Другие вопросы по тегам