coldfusion - session 变量未使用新的 cfimage 刷新

标签 coldfusion cfimage

这是一个奇怪的事情,至少对我来说是这样。我正在将图像读入 cf 图像变量并将其保存为 session 变量:

<cfimage action="read" source="myPath/image.jpg" name="myImage" />
<cfset session.image = #myImage# />

我计划在某个时候操作该图像,这就是我将其保存到变量中的原因。无论如何,然后我用 cfcontent 对其进行流式传输:

<img id="photoPlaceholder" src="/#application.root_name#/administration/PhotoManagement/displayPhoto.cfm" width="500px" />

来自模板displayPhoto.cfm:

<cfcontent  variable="#imageGetBlob(session.image)#" />

问题就在这里。第一次调用后,无论传递给哪个新图像,都会显示第一个检索到的图像。我尝试在 cfimage 标记之前销毁 session 变量,并且我已经验证每次都传递了正确的图像变量。显示新图像的唯一方法是刷新页面。

在我看来,cfimage 正在以某种方式缓存图像,并且每次对它的新调用都不会刷新变量 myImage。 CF 文档对此没有任何说明,谷歌也没有提出任何建议。

想法?

最佳答案

您的问题可能是客户端的。由于 img 标记中的 URL 不会更改 (...displayPhoto.cfm),因此您的浏览器不会发现您实际上指向新图像,因此它会继续提供缓存中已有的图像。

您可以尝试在 src 属性末尾添加一个随机的假参数,如下伪代码:

<img id="photoPlaceholder" src="/#application.root_name#/administration/PhotoManagement/displayPhoto.cfm?somevar=#aUniqueValue#" width="500px" />

您可以从随机数生成器或时间戳生成器创建 aUniqueValue 变量。

关于coldfusion - session 变量未使用新的 cfimage 刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7365275/

相关文章:

arrays - 如何在 Coldfusion 中解析多部分/混合数据

ColdFusion 和尾随逗号

if-statement - 使用 ColdFusion 检查 Youtube ID 是否有效

sql - TSQL SELECT,然后在一个事务中进行UPDATE,然后返回SELECT

coldfusion - 如何在 coldfusion 中将 TIF 图像转换为 PDF

coldfusion - 从图像流式传输 cfcontent?

iis - 需要 Coldfusion 策略对 11 GB 的 jpeg 进行水印

jquery - 将一个 50 字段的表单提交到多个表;常规 POST、AJAX POST 或其他?

coldfusion - 使用 CFLocation - CF9 重定向到新选项卡

facebook - 调整 Facebook 个人资料图像的大小