ASP.NET+C# FILEUPLOAD控件,如何上传图片到服务器并保存图片路径到数据库?

ASP.NET+C# FILEUPLOAD控件,如何上传图片到服务器并保存图片路径到数据库?,第1张

我做了个例子给你\x0d\x0a前台:\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a后台:\x0d\x0a protected void Button1_Click(object sender, EventArgs e)\x0d\x0a{\x0d\x0aFileUpload1.SaveAs(Server.MapPath("img/"+FileUpload1.FileName))//上传图片\x0d\x0aImage1.ImageUrl = "~/img/" + FileUpload1.FileName//图片路径(将这个数据保存到数据库就可以了。img为项目里一个文件夹的名称)\x0d\x0a} 回答于 2022-11-17

两种方法,一种是把图片以二进制流的形式存到数据库,然后把流输出到网页上,这种方法很占数据库资源,所以很少有人用。

二,把图片上传到空间,然后把图片的路径存到数据库里。然后在网页上读到地址。(常用)

<%

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文件夹里面去删除对应的图片文件就可以了。--->

效果图:网页链接


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

原文地址: http://outofmemory.cn/sjk/9894198.html

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

发表评论

登录后才能评论

评论列表(0条)

保存