怎样用数据库在一个字段中存入多张图片信息?

怎样用数据库在一个字段中存入多张图片信息?,第1张

例如,要存入8张图片信息, *** 作方法和步骤如下:

1、首先,扩展可编程性下面的“用户定义数据类型”为空,如下图所示

2、其次,完成上述步骤后,选择数据库,然后单击顶部的“新建查询”按钮,如下图所示。

3、接着,完成上述步骤后,直接使用sp_addtype语句定义数据类型,如下图所示。

4、然后,完成上述步骤后,刷新用户定义的数据类型,这一次“用户定义数据类型”下就有数据了,如下图所示。

5、随后,完成上述步骤后,右键单击数据表,然后选择“设计”选项,如下图所示。

6、最后,完成上述步骤后,就可以在数据类型中找到自定义数据类型,如下图所示。

你说的这个问题,其实是表的设计问题。

只要在t_b中,设计列为3列即可。

id

,

t_a_id

,

picture

添加多个图片,不过是sql、语句。

最简单的办法,是利用for()循环,如:

for(int

i

=

0i<图片数i++){

//你的sql *** 作语句如。

//insert

图片i

into

t_b..

}

分给偶吧。。

^

^!

<%

dim conn

dim rs

dim rs2

set conn=server.createobject("adodb.connection")

conn.connectionstring="Provider = Microsoft.Jet.OLEDB.4.0Data Source="&server.mapPath("db.mdb")

conn.open

formsize=request.totalbytes

if formsize<>0 then '这里只判断了是否等于0,等于0就说明没有传过来数据。以后可以要多做点判断,比如限制图片大小的时候要判断一下。

formdata=request.binaryread(formsize)

bncrlf=chrB(13)&chrB(10)

divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)

datastart=instrb(formdata,bncrlf&bncrlf)+4

dataend=instrb(datastart+1,formdata,divider)-datastart

mydata=midb(formdata,datastart,dataend)    '这里也要检测一下,就是检测这个数据里面是不是有病毒词汇之类的,这个可以在网上查一下病毒里面可能出现的词语,如果有这些词语,直接在这里就把这个mydata销毁,然后response.redirect "xxx.asp",有病毒赶快跳转,不要处理带病毒的数据。

set rs=server.createobject("ADODB.recordset")

sql="select * from imgurl"

rs.open sql,conn,1,3

rs.addnew

rs("img").AppendChunk myData'把这个图片的二进制数据新增到img字段里面。

tpm=replace(now(),"/","_") '用的日期做名字,日期里面有"/"," ",":"之类的东西,这些东西全部替换成"_"。

tpm=replace(tpm,":","_")

tpm=replace(tpm," ","_")

rs("图片名")=tpm

rs.update

Set MyStream=Server.CreateObject("Adodb.Stream")

MyStream.Type=1

MyStream.Open

MyStream.Write rs("img").getChunk(8000000)

MyStream.SaveToFile server.mappath("pic/"&tpm&".jpg")

MyStream.close

set MyStream=nothing

rs("img")="" '把access里面的二进制图片内容删除,只保留图片的名字。

rs.update

rs.close

set rs=nothing

response.write "<script>alert(""上传成功"")location.href=""upload.asp""</script>"

end if

%>

<form action="upload.asp" method="post" enctype="multipart/form-data">

<input type="file" name="imgurl">

<input type="submit" name="ok" value="上传">

</form>

<!--------------下面是把图片显示出来------------------->

<div style="margin-top:2em"><!--------------创建一个div把图片显示区域定位一下------------------->

<%

set rs2=server.createobject("ADODB.recordset")

sql2="select * from imgurl order by id desc"

rs2.open sql2,conn,1,1

for s=1 to rs2.recordcount

if not rs2.eof and not rs2.bof then

%>

<img src="pic/<%=rs2("图片名")%>.jpg">

<%

else

exit for

end if

rs2.movenext

next

rs2.close

set rs2=nothing

%>

</div>

<%

conn.Close

Set conn = Nothing

%>

<!--至于删除图片,这个就很简单了,图片的名字都已经进access里面了,直接读一下access里面的名字,读了一个名字,然后用fso在pic文件夹里面去删除对应的图片文件就可以了。--->

效果图:网页链接


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6661373.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-26
下一篇2023-03-26

发表评论

登录后才能评论

评论列表(0条)

    保存