以传统的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 
%> 
+0

MS SQL,MySQL和甲骨文?你在数据库中存储图像的路径吗?或图像本身的二进制(blob)? – HeavenCore 2012-03-30 12:43:12

+0

HeavenCore是MS SQL,它被存储为二进制 – Reidy0588 2012-03-30 12:48:06

+0

你是否将它存储在varbinary或图像类型列中? – HeavenCore 2012-03-30 12:55:50

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") 

这是否帮助?

+0

嗨的问题,我已经是该图像将在主页上显示,所以在页面顶部将不会有查询字符串 – Reidy0588 2012-04-23 08:22:24

+0

请访问www.echo-ms.com网站,屏幕下方的缩略图(即回声)需要更改为与该新闻文章相关的图像数据库 – Reidy0588 2012-04-23 08:23:15

+0

检查我的编辑在顶部 – Jatin 2012-04-23 10:44:03

好了,根据您的意见,您需要创建一个新的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") 
+0

玉任布莱恩这给一去和虐待让你知道我是如何得到这 – Reidy0588 2012-03-30 13:16:45

+0

没有工作:-( – Reidy0588 2012-03-30 13:40:38

我想通了。问题是图像没有正确加载到数据库中,所以我重新创建了图像加载的页面,然后使用上面的Jatins代码,只将“ID”更改为“News_Article_ID”。一旦这样做是我进入下面的代码到IMG源

img src="Image_Display.asp?news_Article_iD=<%=rsnews("News_article_id")%>" 

许多thaks您的帮助大家

+0

你应该考虑接受贾廷斯的答案,而不是你自己的答案。 – Paddy 2012-05-29 13:37:00