提供ASP上传图片到指定文件夹并存到数据库的源码,能够实现在网面显示
能够实现在网面显示,如(后台更新图片,要包括(FLASH)一样),就是我在网页后台上对前台的文件操作。(用ACCESS数据库)-要源文件与包括ASP,数据库,要一个简单的...
能够实现在网面显示,如(后台更新图片,要包括(FLASH)一样),就是我在网页后台上对前台的文件操作。(用ACCESS数据库)-要源文件与包括ASP,数据库,要一个简单的列子(合意的可加分)
展开
展开全部
<%'记住创建个images目录用来存放图片 '====================== 'upload.asp文件内容 QQ45119302 '*********************************** '1.获取从文件上传表单提交过来的数据,此时不能用普通的request("XXX")来获取信息,否则得不到正确信息 If request.totalbytes>0 Then formsize=request.totalbytes ' 取二进制流字节长度 formdata=request.binaryread(formsize) ' 读取二进制流内容 bncrlf=chrB(13)&chrB(10) datastart=instrb(formdata,bncrlf&bncrlf)+3 ' 取二进制流文件开始位置 (两个回车换行符) divider=leftB(formdata,instrb(formdata,bncrlf)-1) ' 定义取二进制流 Field 分隔标记 (内容为二进制) dataend=instrb(datastart,formdata,divider)-datastart ' 取二进制流文件部分结束位置 '将文件信息保存到数据库 'Call ImgToDb() '将上传的图片以二进制保存到数据库中 Call SaveTofile() '将上传的文件保存到服务器 End If Sub ImgToDb() '将上传的图片以二进制保存到数据库中 mydata=midb(formdata,datastart+1,dataend)' Set conn=server.CreateObject("adodb.connection") conn.provider="microsoft.jet.oledb.4.0" conn.open server.mappath("book/stu.mdb") Set rs=server.CreateObject("adodb.recordset") rs.open "select * from img",conn,3 rs.movelast rs.addnew rs("img").appendchunk mydata rs.update response.binarywrite rs(1) response.End End Sub Sub SaveTofile()'将上传的文件保存到服务器 '2.将获取的信息以二进制流文件存放 --- stm savepath=server.mappath("images")&"\" '根据情况自己要先建立相应目录 或者开启fso自动建立 Set strm=createObject("adodb.str"&"eam") with strm .type=1 ' 二进制模式 .mode=3 ' 指定打开模式为读写 .open .write formdata '写入二进制流内容 '以文本模式读取数据,用于获得提交上来的文件路径及名称等信息 .position=0 '将游标指向数据首部 .type=2 '以文本模式读取 .CharSet = "gb2312" '设置中文编码 formhead=.ReadText(datastart-1) '读取表单头部内容 End with '2.1获取上传的文件名称filename fullname=fRegExpSgl(formhead,true,true,true,"[\s\S]*filename\=""(.*?)""[\s\S]*","$1") fname=Split(fullname,"\") filename=fname(UBound(fname)) '获取到文件名 Set fso = Server.CreateObject("Scripting.File"&"System"&"Object") '判断是否与本地盘文件重名,否则重命名 XXX(1).xxx If fso.FileExists(savepath&filename) Then For i=1 To 999 Fxname=Split(filename,".") Fn=Left(filename,InstrRev(filename,".")-1) Fnx=fxname(UBound(fxname)) If Not fso.FileExists(SavePath&Fn&"("&i&")."&Fnx) Then filename=Fn&"("&i&")."&Fnx Exit For End If Next End If '3.从stm二进制流文件中获取有效信息 及 保存文件 Set formstrm=createOBject("adodb.str"&"eam") with formstrm .type=1 ' 二进制模式 .mode=3 .open strm.position = datastart ' 指定 stm 对象的起始位置, 以变量 bStart 的值为起始位置 strm.copyTo formstrm,dataend ' 拷贝 stm 二进制流至 fromStm 对象, 长度为 bEnd 变量的长度 .saveTofile (savepath&filename),2 ' 将信息保存到文件, 如果存在相同名称, 则覆盖 .close end with Set strm=Nothing Set formstrm=Nothing response.redirect "?upload=ok&name="&filename End Sub function fRegExpSgl(str,glb,igc,mtl,pt,rpt) dim re set re=new RegExp re.global=glb re.ignoreCase=igc re.multiline=mtl re.pattern=pt fRegExpSgl=re.replace(str,rpt) set re=nothing end function %> <html> <body leftmargin="0" topmargin="0"> <form action="" method="post" name="form1" enctype="multipart/form-data"> <!-- enctype="multipart/form-data"不能省略,以保证提交过来的信息的正确性,可以远程提交信息 --> <input name="FileName" type="FILE" class="tx1" size="40" style="height:22"> <input type="submit" name="Submit" value=" 上传 " style="color:red;height:22;width:70"> </form> <% '''测试语句:输出相关图片 If request("upload")="ok" Then response.write "<img src=""images/"&request("name")&""">" End If %> </body> </html>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询