显示调用数据库中图片名称的图像

时间:2016-01-06 19:49:55

标签: coldfusion

我正在尝试从数据库中的路径显示图片。我查询数据库并找到这样的图片名称 的 HTML

<img alt="image" class="img-circle" src="images/show_image.cfm" width="48" height="48"/>

show_image.cfm

<cfquery name="grab_image">
   SELECT picture
   FROM dbo.Users
   WHERE employee_number = <cfqueryparam value="#session.employee_number#" cfsqltype="cf_sql_varchar" />
 </cfquery>

<cfdump var="#grab_image#">

我试图弄清楚如何让这个查询完成路径。这样它就会读取src =&#34; images /(图片名称)&#34;通过src =&#34; images /调用show_image.cfm&#34;这可能吗?

当我调用查询时,我得到一个这样的数组:enter image description here

我能以这种方式展示照片吗?

3 个答案:

答案 0 :(得分:5)

图片SRC应该是返回图片的网址,而不是指向图片的字符串路径。因此,如果您绝对必须这样做,则需要将图像读入二进制文件。然后使用cfcontent

从show_image.cfm返回它
<cfset imgContent = FileReadBinary( "The Full path to the image" )>
<cfcontent type="image/jpeg" variable="#imgContent#">

那就是说,除非有充分的理由你必须将两者分开,否则使用单个.cfm页面(而不是HTML)并使用cfoutput从查询数据构建一个字符串路径会简单得多:

<img src="images/#yourQuery.theFileName#" ... />

答案 1 :(得分:3)

我不相信。

您实际上是在img标记内放置整个查询以及其结构的转储,而不是查询的结果。

运行查询然后输出会更容易,更容易。

<cfquery name="grab_image">
   SELECT picture
   FROM dbo.Users
   WHERE employee_number = <cfqueryparam value="#session.employee_number#" cfsqltype="cf_sql_varchar" />
</cfquery> 

<cfoutput query="grab_image">
<img alt="image" class="img-circle" src="images/#picture#" width="48" height="48"/>
</cfoutput>

但是,如果图像文件本身具有通用的命名约定,则甚至不需要数据库来加载它们。

答案 2 :(得分:1)

你需要做这样的事情:

<cfquery name="grab_image">
    SELECT picture
    FROM dbo.Users
    WHERE employee_number = <cfqueryparam value="#session.employee_number#" cfsqltype="cf_sql_varchar" />
</cfquery>

<cfif grab_image.RecordCount EQ 1>
    <cfoutput>
        <img alt="image" class="img-circle" src="images/#grab_image.picture#" width="48" height="48"/>
    </cfoutput>
<cfelse>
    <!--- no image or more than one image --->
</cfif>

这是伪代码 - 未经过测试