我正在尝试从数据库中的路径显示图片。我查询数据库并找到这样的图片名称 的 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;这可能吗?
我能以这种方式展示照片吗?
答案 0 :(得分:5)
图片SRC
应该是返回图片的网址,而不是指向图片的字符串路径。因此,如果您绝对必须这样做,则需要将图像读入二进制文件。然后使用cfcontent:
<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>
这是伪代码 - 未经过测试