ASP+access实现无组件上传图片

上传人:仙*** 文档编号:135865733 上传时间:2022-08-16 格式:DOC 页数:9 大小:45KB
返回 下载 相关 举报
ASP+access实现无组件上传图片_第1页
第1页 / 共9页
ASP+access实现无组件上传图片_第2页
第2页 / 共9页
ASP+access实现无组件上传图片_第3页
第3页 / 共9页
点击查看更多>>
资源描述
ASP+access实现无组件上传图片一、建立数据库myfile.mdb,建表myfile ,表中有四个字段 id(自动编号),upname(文本,表示上传者名字),filename(文本,表示上传后的文件名),uptime(日期/时间,表示上传的时间)。二、建立一个名为myfile的文件夹,用来放上传后的图片。三、代码部分1、upload_5xsoft.inc (这是一个写好的上传类,我们不对它作解释,一会将该文件包含进去,只要会用就可以了) 注意:如果运行出现错误,请将此句和对应的结束语句改为asp符号dim Data_5xsoftClass upload_5xsoftdim objForm,objFile,VersionPublic function Form(strForm) strForm=lcase(strForm) if not objForm.exists(strForm) then Form= else Form=objForm(strForm) end ifend functionPublic function File(strFile) strFile=lcase(strFile) if not objFile.exists(strFile) then set File=new FileInfo else set File=objFile(strFile) end ifend functionPrivate Sub Class_Initialize dim RequestData,sStart,vbCrlf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,theFile dim iFileSize,sFilePath,sFileType,sFormValue,sFileName dim iFindStart,iFindEnd dim iFormStart,iFormEnd,sFormName Version=!小陈跑跑! set objForm=Server.CreateObject(Scripting.Dictionary) set objFile=Server.CreateObject(Scripting.Dictionary) if Request.TotalBytes1 then Exit Sub set tStream = Server.CreateObject(adodb.stream) set Data_5xsoft = Server.CreateObject(adodb.stream) Data_5xsoft.Type = 1 Data_5xsoft.Mode =3 Data_5xsoft.Open Data_5xsoft.Write Request.BinaryRead(Request.TotalBytes) Data_5xsoft.Position=0 RequestData =Data_5xsoft.Read iFormStart = 1 iFormEnd = LenB(RequestData) vbCrlf = chrB(13) & chrB(10) sStart = MidB(RequestData,1, InStrB(iFormStart,RequestData,vbCrlf)-1) iStart = LenB (sStart) iFormStart=iFormStart+iStart+1 while (iFormStart + 10) 0 thenset theFile=new FileInfo取得文件名iFindStart = InStr(iFindEnd,sInfo,filename=,1)+10iFindEnd = InStr(iFindStart,sInfo,1)sFileName =Mid (sinfo,iFindStart,iFindEnd-iFindStart)sFileName = replace(cstr(now(),:,)theFile.FileName=getFileName(sFileName)theFile.FilePath=getFilePath(sFileName)取得文件类型iFindStart = InStr(iFindEnd,sInfo,Content-Type: ,1)+14iFindEnd = InStr(iFindStart,sInfo,vbCr)theFile.FileType =Mid (sinfo,iFindStart,iFindEnd-iFindStart)theFile.FileStart =iInfoEndtheFile.FileSize = iFormStart -iInfoEnd -3theFile.FormName=sFormNameif not objFile.Exists(sFormName) then objFile.add sFormName,theFileend ifelse如果是表单项目tStream.Type =1tStream.Mode =3tStream.OpenData_5xsoft.Position = iInfoEnd Data_5xsoft.CopyTo tStream,iFormStart-iInfoEnd-3tStream.Position = 0tStream.Type = 2tStream.Charset =gb2312 sFormValue = tStream.ReadText tStream.Closeif objForm.Exists(sFormName) then objForm(sFormName)=objForm(sFormName)&, &sFormValue else objForm.Add sFormName,sFormValueend ifend ifiFormStart=iFormStart+iStart+1wend Requestdata set tStream =nothingEnd SubPrivate Sub Class_Terminate if Request.TotalBytes0 thenobjForm.RemoveAllobjFile.RemoveAllset objForm=nothingset objFile=nothingData_5xsoft.Closeset Data_5xsoft =nothingend ifEnd Sub Private function GetFilePath(FullPath) If FullPath Then GetFilePath = left(FullPath,InStrRev(FullPath, ) Else GetFilePath = End IfEnd functionPrivate function GetFileName(FullPath) Randomize If FullPath Then GetFileName =replace(replace(replace(cstr(now(),:,), ,),-,) & mid(FullPath,InStrRev(FullPath, )+1) tmpFile_Name = mid(FullPath,InStrRev(FullPath, )+1) tmp_instr=len(tmpFile_Name)-InStrRev(tmpFile_Name,.)+1 tmpFile_Name=right(tmpFile_Name,tmp_instr) GetFileName =replace(replace(replace(cstr(now(),:,), ,),-,) & Cstr(Int(10000000* Rnd )&VKEY & tmpFile_Name Else GetFileName = End IfEnd functionEnd ClassClass FileInfo dim FormName,FileName,FilePath,FileSize,FileType,FileStart Private Sub Class_Initialize FileName = FilePath = FileSize = 0 FileStart= 0 FormName = FileType = End Sub Public function SaveAs(FullPath) dim dr,ErrorChar,i SaveAs=true if trim(fullpath)= or FileStart=0 or FileName= or right(fullpath,1)=/ then exit function set dr=CreateObject(Adodb.Stream) dr.Mode=3 dr.Type=1 dr.Open Data_5xsoft.position=FileStart Data_5xsoft.copyto dr,FileSize dr.SaveToFile FullPath,2 dr.Close set dr=nothing SaveAs=false end function End Class二、conn.asp (数据库连接代码,一会包含使用)三、index.asp 上传者: 图片文件:a href=myfile/ target=_blank 点击查看 文件夹 上传时间: 上传者: 上传图片: 四、postnew.asp (处理表单数据的文件)0 and file.filesize 0 说明有文件数据 FileNameext = LCase(Right(file.fileName,4) 最文件名的后四位字符,并转成小写 if FileNameext=.jpg or FileNameext=.gif or FileNameext=.GIF or FileNameext=.JPGthen 判断图片的格式,你也可以去掉不判断 Pic_Name=file.fileName 将文件名赋值给变量Pic_Name file.SaveAs Server.mappath(formPath&file.FileName) 保存文件 iCount=iCount+1 else response.write response.write alert(你上传的图片格式不正确); response.write history.go(-1); response.write response.end end if else if file.filesize262144 then 如果文件大于256K,这个数值你可以自己算2561024 response.write response.write alert(上传的图片大于256K,上传失败!); response.write history.go(-1); response.write response.endend if end ifset file=nothingnextup_pic=Pic_Name 本函数的作用是,将上传的图片上传到文件夹中,并将文件名返回end functionpicname=up_pic() 调用up_pic()函数,返回文件名set rs=server.CreateObject(adodb.recordset) 建立一个记录集对象rssql=select * from myfilers.open sql,conn,1,3 打开记录集参数1,3表示可以修改方式打开rs.addnewrs(upname)=trim(upload.form(upname) 这里要注意,必须用upload.form来获取表单的值,和平常不一样,不能用request.formrs(filename)=picnamers(uptime)=now()rs.updaters.close 使用完后关闭记录集set rs=nothing conn.close 关闭数据库连接对象set conn=nothing%META HTTP-EQUIV=“refresh” CONTENT=0;url=;charset=gb2312
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!