以传统的asp显示来自sql数据库的图像
我正在创建一个主页并有一个新闻部分。目前新闻部分显示了他们存储在数据库中的前3个新闻标题/标题。现在,所有者想要的是应该在与新闻文章相关的新闻标题旁边显示图片。所以我建立了一个功能,通过他们将图片上传到新闻数据库,反对他们刚创建/上传到数据库的文章,现在我想要做的就是显示保存在数据库中的这张图片。有没有办法做到这一点?以传统的asp显示来自sql数据库的图像
我使用的是经典的asp和html/javascript。
到目前为止的代码,我是:
<img id="news_image2" alt="<%=rsNews("Image_Name")%>" border="0" height="70" name="Image" src="<%=rsNews("news_Image")%>" title="Echo_Images" width="80" align="middle" /> </a>
非常感谢
编辑。这是rsnews homepage.asp
<%@ language="VBSCRIPT" codepage="1252" %>
<!-- #include file="Connections/echo.asp" -->
<%
Dim rsNews
Dim rsNews_numRows
Set rsNews = Server.CreateObject("ADODB.Recordset")
rsNews.ActiveConnection = MM_echo_STRING
rsNews.Source = "SELECT top 3 News_Article_ID,News_Article_Create_Date,News_Txt_Date,News_Title,News_Publish_Date,News_Expiry_Date,News_Title_Header,News_Active,Admin_ID,News_Ticker,display,Image_Name,displayCode,news_Image FROM tblNews WHERE News_Active = 1 AND News_Expiry_Date >= getDate() AND (display = 'ext' OR display = 'both'OR displayCode=1 OR displayCode=4 OR displayCode=5 OR displayCode=7) ORDER BY News_TXT_Date DESC"
rsNews.CursorType = 0
rsNews.CursorLocation = 2
rsNews.LockType = 1
rsNews.Open()
rsNews_numRows = 0
%>
<div id="news-home-container">
<!--news item 1-->
<div>
<div class="news-home-image">
<a href="about/echo_news.aspx?id=0">
<img id="news_image2" alt="LatestNews" border="0" height="70" name="logo_link0" src="image_display.asp?PhotoID=627" title="Echo_Images" width="80" align="middle" /></a> </div>
<div class="newsDiv">
<a href="about/echo_news.aspx?id=0" ><b style="line-height:1.3em"><%=rsNews("News_Title")%></b>
<p><%=rsNews("News_Title_Header")%></p></a>
</div>
</div>
<!--End of news item 1-->
现在我需要的图像保存到数据库中的前3篇文章中显示。
这是image_display.asp
<!-- #include file="Connections/echo.asp" -->
<%
Dim sql
Dim rs
Dim conn
Dim userID,str
userID = Request("PhotoId")
If userID = "" Then userID = 0
'Instantiate Objects
Set conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
'Open connection
“rsNews.ActiveConnection = MM_echo_STRING ”康恩=取消注释这行代码,并在此处插入您的连接字符串 “获得根据传入的ID具体形象查询字符串 海峡= “SELECT news_Image FROM tblNews WHERE news_article_id =” &用户ID rs.Open海峡,康涅狄格州,3,3 如果RS.EOF那么“找不到记录 到Response.End 别人的显示内容 Response.ContentType = “图像/ GIF” Response.BinaryWrite(RS( “news_Image”)) 结束时,如果
'destroy the variables.
rs.Close
conn.Close
set rs = Nothing
set conn = Nothing
%>
heavencore的答案是正确的 你只需要检查你是否是二进制文字编辑器就行了 ,因此请检查你是否在页面上传递了正确的编号,然后说出响应的地方。的BinaryWrite RS(“ImageBlob”) - imageblob是你保存的图像作为二进制数据
领域 看到您的评论后编辑:
我刚刚在你的源代码看看 -
你这条线的代码是
<img id="news_image2" alt="LatestNews" border="0" height="70" name="logo_link0" src="images/News_images/default image.jpg" title="Echo_Images" width="80" align="middle" />
你需要替换它 -
<img id="news_image2" alt="LatestNews" border="0" height="70" name="logo_link0" src="somefile.asp?ID=2" title="Echo_Images" width="80" align="middle" />
所以你刚才的改变src = “” 到SRC = “somefile.asp ID = 2”
,然后在somefile.asp你把这个代码 -
Dim ImageID
ImageID = request.querystring("ID")
Set rs = db.Execute("SELECT ImageBlob FROM table WHERE ID = " & ImageID)
Response.Expires = 0
Response.Buffer = TRUE
Response.Clear
Response.ContentType = "image/jpeg" '#### Assuming your images are jpegs
Response.BinaryWrite rs("ImageBlob")
这是否帮助?
好了,根据您的意见,您需要创建一个新的ASP页面,让称它为getImage.asp。
你会引用图像在你的HTML如下:
<img src="getImage.asp?ID=<%=rsNews("Image_ID") %>">
其中getImage.asp是这样的(注意,使用response.BinaryWrite的:
Dim ImageID
ImageID = request.querystring("ID")
Set rs = db.Execute("SELECT ImageBlob FROM table WHERE ID = " & ImageID)
Response.Expires = 0
Response.Buffer = TRUE
Response.Clear
Response.ContentType = "image/jpeg" '#### Assuming your images are jpegs
Response.BinaryWrite rs("ImageBlob")
我想通了。问题是图像没有正确加载到数据库中,所以我重新创建了图像加载的页面,然后使用上面的Jatins代码,只将“ID”更改为“News_Article_ID”。一旦这样做是我进入下面的代码到IMG源
img src="Image_Display.asp?news_Article_iD=<%=rsnews("News_article_id")%>"
许多thaks您的帮助大家
你应该考虑接受贾廷斯的答案,而不是你自己的答案。 – Paddy 2012-05-29 13:37:00
MS SQL,MySQL和甲骨文?你在数据库中存储图像的路径吗?或图像本身的二进制(blob)? – HeavenCore 2012-03-30 12:43:12
HeavenCore是MS SQL,它被存储为二进制 – Reidy0588 2012-03-30 12:48:06
你是否将它存储在varbinary或图像类型列中? – HeavenCore 2012-03-30 12:55:50