3

让我在顶部说,我不确定我是否真正理解 cfcontent 在做什么......如果这是一个愚蠢的问题,请耐心等待。

我一直在使用 cfcontent 将 Web 根目录之外的图像流式传输到浏览器。我已经决定我现在想将图像存储在一个变量中,显示它,能够修改它,查看这些修改,并且只有在我确定我喜欢这些更改时才提交更改的变量。我在想我可以使用 cfcontent 以某种方式从变量中流式传输图像,然后从变量中显示、修改、重新显示和保存该图像。我的原始代码很简单:

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

和 displayPhoto.cfm 包括:

<cfcontent type = "image/*" 
    file = "myPathName" 
    deleteFile = "No" />

我看到我可以将文件读入一个变量并从该变量流式传输:

<cffile action="readBinary" file="myPathName" variable="fileObject" />
<cfcontent type="image/*" variable="#fileObject#" />

但是如果我采取使用创建图像的中间步骤

<cfimage source="fileObject" name="myImage" />
<cfcontent type="image/*" variable="#myImage#" />

然后我得到一个属性验证错误。

有什么想法吗?

4

1 回答 1

4

ImageGetBlob()?

如果您考虑一下 - 这是有道理的。图像变量不是 ColdFusion 中的二进制数据。虽然它们可能存储二进制数据,但 ColdFusion 将数据包装在新的“图像”变量类型中。

http://www.coldfusionjedi.com/index.cfm/2007/9/14/Serving-up-CFIMages-via-Image-Tags-and-a-NonCF-Friday-contest

如果您使用的是 CF9,您可以尝试先将映像写入RAM://驱动器,提供它,然后从 RAM 中删除。

于 2011-09-08T19:01:51.733 回答