且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

保存图片流到数据库之后固定显示新法

更新时间:2022-01-27 16:15:19

在sqlserver中的图片类型是image,然后,通过dataset保存到数据库中,通过showimg.aspx文件来读出图片,即显示图片,代码如下:


DimimageAsByte()=IssueQuestionRow.QuestionImage
'/转换为支持存储区为内存的流
DimmemStreamAsNewSystem.IO.MemoryStream(image)
'/定义并实例化Bitmap对象
DimbmAsNewBitmap(memStream)
'/根据不同的条件进行输出或者下载;
Response.Clear()
'/如果请求字符串指定下载,就下载该文件;
'/否则,就显示在浏览器中。
IfRequest.QueryString("Download")="1"Then
Response.Buffer=True
Response.ContentType="application/octet-stream"
'/这里下载输出的文件名字ok.jpg为例子,你实际中可以根据情况动态决定。
Response.AddHeader("Content-Disposition","attachment;filename=ok.jpg")
Else

Response.ContentType="image/jpg"
EndIf
Response.BinaryWrite(image)

Response.End()


然后通过需要调用显示图片的页面,加入


<img src=”./showimg.aspx”wigth=”100px”height=”50”>

来固定图片的显示位置、大小等。当然也可以通过一个页面的不同参数来获得不同的图片,如下代码:


Showimg.aspx文件:
PublicQuestionIDAsString
PublicChapterIDAsString
PrivateSubPage_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
'在此处放置初始化页的用户代码
IfNotIsPostBackThen
QuestionID=Request.QueryString("QID")
ChapterID=Request.QueryString("ChapterID")
Exercise=EXH.GetExercise(ChapterID)
DimdvAsNewDataView(Exercise.Ex_IssueQuestion)
dv.RowFilter="QuestionID='"+QuestionID+"'"
Ifdv.Count>0Then
IssueQuestionRow=dv.Item(0).Row
DimimageAsByte()=IssueQuestionRow.QuestionImage
'/转换为支持存储区为内存的流
DimmemStreamAsNewSystem.IO.MemoryStream(image)
'/定义并实例化Bitmap对象
DimbmAsNewBitmap(memStream)
'/根据不同的条件进行输出或者下载;

Response.BinaryWrite(image)
EndIf
EndIf
EndSub

在其他需要调用的地方的aspx页面里只需写:


<img src=”./showimg.aspx?QuestionID=222&ChapterID=3”wigth=”100px”height=”50”>