使用经典的asp在sql数据库中显示图像

时间:2012-03-30 12:27:03

标签: asp-classic

我正在创建一个主页并有一个新闻栏目。目前,新闻部分显示了存储在其中的数据库中的前3个新闻标题/标题。所有者现在想要的是,应该在与该新闻文章相关的新闻标题旁边显示图像。所以我已经建立了一个功能,通过他们将图像上传到他们刚刚创建/上传到数据库的文章的新闻数据库,现在我想要做的就是显示保存在数据库中的这个图像。有没有办法做到这一点?

我正在使用经典的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>   

非常感谢

EDIT。在主页上是rsnews.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--> 

现在我需要保存到数据库中前三篇文章的图像才能显示。

这是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    'conn =取消注释此行并在此处插入您的连接字符串        '根据查询字符串中传递的ID获取特定图像        str =“SELECT news_Image FROM tblNews WHERE news_article_id =”&amp;用户身份         rs.Open str,conn,3,3         如果rs.eof然后'没有找到记录             到Response.End         否则'显示内容             Response.ContentType =“image / gif”             Response.BinaryWrite(RS( “news_Image”))        结束如果

   'destroy the variables.
   rs.Close
    conn.Close
   set rs = Nothing
   set conn = Nothing
 %>

3 个答案:

答案 0 :(得分:1)

我明白了。问题是图像没有正确加载到数据库中,所以我重新创建了加载图像的页面,然后使用上面的Jatins代码,只将“ID”改为“News_Article_ID”。完成后,我将以下代码输入img源

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

很多人帮助你们每个人

答案 1 :(得分:0)

好的,根据你的评论你需要创建一个新的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") 

答案 2 :(得分:0)

heavencore的答案是对的 你只需要检查你是否是二进制写作正确的事情 所以检查你是否将正确的id传递给页面,然后检查它是否响应.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") 

这有帮助吗?