- 无组件上传文字与图片至数据库之gztiger解决方案
- 作者:未知 来源:未知 添加时间:2004年5月7日 字体:大 中 小
- 80879<!-- 郑 重 声 明
"T=&Ha这是免费代码,从《化境无组件上传图片2.0》修改而来,目的只为对这问题有困扰的朋友有所帮助,
"T=&Ha并对《化境无组件上传图片2.0》的作者说声:谢谢!本代码在iis5+access2000+asp测试通过
"T=&Ha——gztiger
"T=&Ha-->
"T=&Ha<html>
"T=&Ha<head>
"T=&Ha<title>化境编程界无组件上传文字与图片至数据库之gztiger解决方案 修改者:gztiger </title>
"T=&Ha<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
"T=&Ha</head>
"T=&Ha<body bgcolor="#FFFFFF" text="#000000">
"T=&Ha<form name="form1" method="post" action="upfile.asp" enctype="multipart/form-data" >
"T=&Ha<table border="1" cellspacing="0" cellpadding="0" bordercolorlight="#000000" bordercolordark="#CCCCCC" width="91" height="23">
"T=&Ha<tr>
"T=&Ha<td align="left" valign="middle" height="18" width="18"> </td>
"T=&Ha<td bgcolor="#CCCCCC" align="left" valign="middle" height="18" width="67"> 文件上传</td>
"T=&Ha</tr>
"T=&Ha</table>
"T=&Ha<table width="71%" border="1" cellspacing="0" cellpadding="5" align="center" bordercolordark="#CCCCCC" bordercolorlight="#000000">
"T=&Ha<tr bgcolor="#CCCCCC">
"T=&Ha<td height="22" align="left" valign="middle" bgcolor="#CCCCCC"> 化境编程界文件上传修改版
"T=&Ha 修改者:<a href="mailto:gztiger@21cn.com">gztiger</a> </td>
"T=&Ha</tr>
"T=&Ha<tr align="left" valign="middle" bgcolor="#eeeeee">
"T=&Ha<td bgcolor="#eeeeee" height="92">
"T=&Ha<!--此处可任意添加多个文本与文件框
"T=&Ha在upfile.asp中对应添加TextN=Trim(upload.form("TextN")) 、Rs("imagedataN")=Image_Set(N)
"T=&Ha回显提交信息就不用说了 ,数据库表中亦要添加相对字段名:)
"T=&Ha-->
"T=&Ha文本框1:<input type="text" name="Text1" &#118alue="图片与文本上传测试1" >
"T=&Ha
"T=&Ha文本框2:<input type="text" name="Text2" &#118alue="图片与文本上传测试2" >
"T=&Ha
"T=&Ha文本框3:<input type="text" name="Text3" &#118alue="图片与文本上传测试3" >
"T=&Ha
"T=&Ha图象1 :<input type="file" name="Image1" style="width:400" &#118alue="">
"T=&Ha
"T=&Ha图象2 :<input type="file" name="Image2" style="width:400" &#118alue="">
"T=&Ha
"T=&Ha图象3 :<input type="file" name="Image3" style="width:400" &#118alue="">
"T=&Ha
"T=&Ha文本框4:<input type="text" name="Text4" &#118alue="图片与文本上传测试4" >
"T=&Ha
"T=&Ha文本框5:<input type="text" name="Text5" &#118alue="图片与文本上传测试5" >
"T=&Ha
"T=&Ha文本框6:<input type="text" name="Text6" &#118alue="图片与文本上传测试6" >
"T=&Ha
"T=&Ha文本框7:<input type="text" name="Text7" &#118alue="图片与文本上传测试7" >
"T=&Ha</td>
"T=&Ha</tr>
"T=&Ha<tr align="center" valign="middle" bgcolor="#eeeeee">
"T=&Ha<td bgcolor="#eeeeee" height="24"> <input type="submit" name="Submit" &#118alue="提 交" class="bt">
"T=&Ha<input type="reset" name="Submit2" &#118alue="清 空" class="bt"> </td>
"T=&Ha</tr>
"T=&Ha</table>
"T=&Ha</form>
"T=&Ha</body>
"T=&Ha</html>
"T=&Ha
"T=&Haupfile.asp -----------------------------------------------------------------------------------------
"T=&Ha
"T=&Ha<%Server.ScriptTimeOut=5000%>
"T=&Ha<!--#include FILE="upload_5xsoft.inc"-->
"T=&Ha<title>化境编程界文件上传修改版 修改者:gztiger </title>
"T=&Ha<%
"T=&Hadim upload,file,formName,formPath,iCount
"T=&Haset upload=new upload_5xsoft ''建立上传对象
"T=&Ha
"T=&HaText1=Trim(upload.form("Text1")) '----获取表单文本框信息(原来代码用for循环)-目的为了说明获取文本框信息的方法
"T=&HaText2=Trim(upload.form("Text2"))
"T=&HaText3=Trim(upload.form("Text3"))
"T=&HaText4=Trim(upload.form("Text4"))
"T=&HaText5=Trim(upload.form("Text5"))
"T=&HaText6=Trim(upload.form("Text6"))
"T=&HaText7=Trim(upload.form("Text7"))
"T=&Ha
"T=&Ha
"T=&HaiCount=0
"T=&Han=1
"T=&Ha
"T=&Haresponse.write "
"T=&Ha"
"T=&Hafor each formName in upload.objFile ''------------------列出所有上传了的文件
"T=&Haset file=upload.file(formName) ''--------------------生成一个文件对象
"T=&HaImage_countn=Image_countn&","&file.FileName '----------把图象名做成数组
"T=&Haif file.FileSize>0 then ''------------------------如果 FileSize > 0 说明有文件数据
"T=&Hafile.SaveAs Server.mappath("img/"&file.FileName) ''----------保存文件
"T=&Haend if
"T=&Han=n+1
"T=&Haset file=nothing
"T=&Hanext
"T=&Haset upload=nothing '-------------------------------'删除此对象
"T=&HaImage_Set=split(Image_countn,",")'---------------------返回数组
"T=&Ha
"T=&Ha'------添加信息到数据库-------------------------------------
"T=&HaConnstr="DBQ="+server.mappath("database\img_text.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
"T=&HaSet Conn=Server.createobject("ADODB.Connection")
"T=&HaConn.Open Connstr
"T=&HaSet Rs=Server.CreateObject("ADODB.RecordSet")
"T=&Hasqlstr="select * from imgdata"
"T=&HaRs.Open Sqlstr,Conn,1,3
"T=&Haif not rs.eof then
"T=&Haid=Rs("id")+1
"T=&Haelse
"T=&Haid=1
"T=&Haend if
"T=&HaRs.Addnew
"T=&HaRs("Text1")=Text1
"T=&HaRs("Text2")=Text2
"T=&HaRs("Text3")=Text3
"T=&HaRs("Text4")=Text4
"T=&HaRs("Text5")=Text5
"T=&HaRs("Text6")=Text6
"T=&HaRs("Text7")=Text7
"T=&HaRs("imagedata1")=Image_Set(1)
"T=&HaRs("imagedata2")=Image_Set(2)
"T=&HaRs("imagedata3")=Image_Set(3)
"T=&HaRs.Update
"T=&HaRs.Close
"T=&HaSet Rs=Nothing
"T=&Haupload_ok=true
"T=&Ha
"T=&Haif upload_ok=true then
"T=&Ha'-------回显提交信息---------------------------
"T=&Haresponse.Write("您上传的信息如下:"&"
"T=&Ha")
"T=&HaConnstr="DBQ="+server.mappath("database\img_text.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
"T=&HaSet Conn=Server.createobject("ADODB.Connection")
"T=&HaConn.Open Connstr
"T=&HaSet Rs=Server.CreateObject("ADODB.RecordSet")
"T=&Hasqlstr="select * from imgdata order by id desc"
"T=&HaRs.Open Sqlstr,Conn,1,1
"T=&Ha%>
"T=&Ha文本1:<%=Rs("Text1")%>
"T=&Ha
"T=&Ha文本2:<%=Rs("Text2")%>
"T=&Ha
"T=&Ha文本3:<%=Rs("Text3")%>
"T=&Ha
"T=&Ha文本4:<%=Rs("Text4")%>
"T=&Ha
"T=&Ha文本5:<%=Rs("Text5")%>
"T=&Ha
"T=&Ha文本6:<%=Rs("Text6")%>
"T=&Ha
"T=&Ha文本7:<%=Rs("Text7")%>
"T=&Ha
"T=&Ha<%if Rs("imagedata1")<>"" then%>
"T=&Ha图象1:<%=Rs("imagedata1")%>
"T=&Ha
"T=&Ha<img src="img/<%=Rs("imagedata1")%>">
"T=&Ha
"T=&Ha<%end if%>
"T=&Ha<%if Rs("imagedata2")<>"" then%>
"T=&Ha图象2:<%=Rs("imagedata2")%>
"T=&Ha
"T=&Ha<img src="img/<%=Rs("imagedata2")%>" >
"T=&Ha
"T=&Ha<%end if%>
"T=&Ha<%if Rs("imagedata3")<>"" then%>
"T=&Ha图象3:<%=Rs("imagedata3")%>
"T=&Ha
"T=&Ha<img src="img/<%=Rs("imagedata3")%>" >
"T=&Ha
"T=&Ha<% end if
"T=&HaRs.Close
"T=&HaSet Rs=Nothing
"T=&Haend if
"T=&Ha%>
"T=&Ha
"T=&Haupload_5xsoft.inc ----------------------------------------------------------------------------------
"T=&Ha<SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>
"T=&Hadim Data_5xsoft
"T=&Ha
"T=&HaClass upload_5xsoft
"T=&Ha
"T=&Hadim objForm,objFile,Version
"T=&Ha
"T=&HaPublic function Form(strForm)
"T=&HastrForm=lcase(strForm)
"T=&Haif not objForm.exists(strForm) then
"T=&HaForm=""
"T=&Haelse
"T=&HaForm=objForm(strForm)
"T=&Haend if
"T=&Haend function
"T=&Ha
"T=&HaPublic function File(strFile)
"T=&HastrFile=lcase(strFile)
"T=&Haif not objFile.exists(strFile) then
"T=&Haset File=new FileInfo
"T=&Haelse
"T=&Haset File=objFile(strFile)
"T=&Haend if
"T=&Haend function
"T=&Ha
"T=&Ha
"T=&HaPrivate Sub Class_Initialize
"T=&Hadim RequestData,sStart,vbCrlf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,theFile
"T=&Hadim iFileSize,sFilePath,sFileType,sForm&#118alue,sFileName
"T=&Hadim iFindStart,iFindEnd
"T=&Hadim iFormStart,iFormEnd,sFormName
"T=&HaVersion="化境HTTP上传程序 Version 2.0"
"T=&Haset objForm=Server.CreateObject("Scripting.Dictionary")
"T=&Haset objFile=Server.CreateObject("Scripting.Dictionary")
"T=&Haif Request.TotalBytes<1 then Exit Sub
"T=&Haset tStream = Server.CreateObject("adodb.stream")
"T=&Haset Data_5xsoft = Server.CreateObject("adodb.stream")
"T=&HaData_5xsoft.Type = 1
"T=&HaData_5xsoft.Mode =3
"T=&HaData_5xsoft.Open
"T=&HaData_5xsoft.Write Request.BinaryRead(Request.TotalBytes)
"T=&HaData_5xsoft.Position=0
"T=&HaRequestData =Data_5xsoft.Read
"T=&Ha
"T=&HaiFormStart = 1
"T=&HaiFormEnd = LenB(RequestData)
"T=&HavbCrlf = chrB(13) & chrB(10)
"T=&HasStart = MidB(RequestData,1, InStrB(iFormStart,RequestData,vbCrlf)-1)
"T=&HaiStart = LenB (sStart)
"T=&HaiFormStart=iFormStart+iStart+1
"T=&Hawhile (iFormStart + 10) < iFormEnd
"T=&HaiInfoEnd = InStrB(iFormStart,RequestData,vbCrlf & vbCrlf)+3
"T=&HatStream.Type = 1
"T=&HatStream.Mode =3
"T=&HatStream.Open
"T=&HaData_5xsoft.Position = iFormStart
"T=&HaData_5xsoft.CopyTo tStream,iInfoEnd-iFormStart
"T=&HatStream.Position = 0
"T=&HatStream.Type = 2
"T=&HatStream.Charset ="gb2312"
"T=&HasInfo = tStream.ReadText
"T=&HatStream.Close
"T=&Ha'取得表单项目名称
"T=&HaiFormStart = InStrB(iInfoEnd,RequestData,sStart)
"T=&HaiFindStart = InStr(22,sInfo,"name=""",1)+6
"T=&HaiFindEnd = InStr(iFindStart,sInfo,"""",1)
"T=&HasFormName = lcase(Mid (sinfo,iFindStart,iFindEnd-iFindStart))
"T=&Ha'如果是文件
"T=&Haif InStr (45,sInfo,"filename=""",1) > 0 then
"T=&Haset theFile=new FileInfo
"T=&Ha'取得文件名
"T=&HaiFindStart = InStr(iFindEnd,sInfo,"filename=""",1)+10
"T=&HaiFindEnd = InStr(iFindStart,sInfo,"""",1)
"T=&HasFileName = Mid (sinfo,iFindStart,iFindEnd-iFindStart)
"T=&HatheFile.FileName=getFileName(sFileName)
"T=&HatheFile.FilePath=getFilePath(sFileName)
"T=&Ha'取得文件类型
"T=&HaiFindStart = InStr(iFindEnd,sInfo,"Content-Type: ",1)+14
"T=&HaiFindEnd = InStr(iFindStart,sInfo,vbCr)
"T=&HatheFile.FileType =Mid (sinfo,iFindStart,iFindEnd-iFindStart)
"T=&HatheFile.FileStart =iInfoEnd
"T=&HatheFile.FileSize = iFormStart -iInfoEnd -3
"T=&HatheFile.FormName=sFormName
"T=&Haif not objFile.Exists(sFormName) then
"T=&HaobjFile.add sFormName,theFile
"T=&Haend if
"T=&Haelse
"T=&Ha'如果是表单项目
"T=&HatStream.Type =1
"T=&HatStream.Mode =3
"T=&HatStream.Open
"T=&HaData_5xsoft.Position = iInfoEnd
"T=&HaData_5xsoft.CopyTo tStream,iFormStart-iInfoEnd-3
"T=&HatStream.Position = 0
"T=&HatStream.Type = 2
"T=&HatStream.Charset ="gb2312"
"T=&HasForm&#118alue = tStream.ReadText
"T=&HatStream.Close
"T=&Haif objForm.Exists(sFormName) then
"T=&HaobjForm(sFormName)=objForm(sFormName)&", "&sForm&#118alue
"T=&Haelse
"T=&HaobjForm.Add sFormName,sForm&#118alue
"T=&Haend if
"T=&Haend if
"T=&HaiFormStart=iFormStart+iStart+1
"T=&Hawend
"T=&HaRequestData=""
"T=&Haset tStream =nothing
"T=&HaEnd Sub
"T=&Ha
"T=&HaPrivate Sub Class_Terminate
"T=&Haif Request.TotalBytes>0 then
"T=&HaobjForm.RemoveAll
"T=&HaobjFile.RemoveAll
"T=&Haset objForm=nothing
"T=&Haset objFile=nothing
"T=&HaData_5xsoft.Close
"T=&Haset Data_5xsoft =nothing
"T=&Haend if
"T=&HaEnd Sub
"T=&Ha
"T=&Ha
"T=&HaPrivate function GetFilePath(FullPath)
"T=&HaIf FullPath <> "" Then
"T=&HaGetFilePath = left(FullPath,InStrRev(FullPath, "\"))
"T=&HaElse
"T=&HaGetFilePath = ""
"T=&HaEnd If
"T=&HaEnd function
"T=&Ha
"T=&HaPrivate function GetFileName(FullPath)
"T=&HaIf FullPath <> "" Then
"T=&HaGetFileName = mid(FullPath,InStrRev(FullPath, "\")+1)
"T=&HaElse
"T=&HaGetFileName = ""
"T=&HaEnd If
"T=&HaEnd function
"T=&HaEnd Class
"T=&Ha
"T=&HaClass FileInfo
"T=&Hadim FormName,FileName,FilePath,FileSize,FileType,FileStart
"T=&HaPrivate Sub Class_Initialize
"T=&HaFileName = ""
"T=&HaFilePath = ""
"T=&HaFileSize = 0
"T=&HaFileStart= 0
"T=&HaFormName = ""
"T=&HaFileType = ""
"T=&HaEnd Sub
"T=&Ha
"T=&HaPublic function SaveAs(FullPath)
"T=&Hadim dr,ErrorChar,i
"T=&HaSaveAs=true
"T=&Haif trim(fullpath)="" or FileStart=0 or FileName="" or right(fullpath,1)="/" then exit function
"T=&Haset dr=CreateObject("Adodb.Stream")
"T=&Hadr.Mode=3
"T=&Hadr.Type=1
"T=&Hadr.Open
"T=&HaData_5xsoft.position=FileStart
"T=&HaData_5xsoft.copyto dr,FileSize
"T=&Hadr.SaveToFile FullPath,2
"T=&Hadr.Close
"T=&Haset dr=nothing
"T=&HaSaveAs=false
"T=&Haend function
"T=&HaEnd Class
"T=&Ha</SCRIPT>
"T=&Ha
"T=&Ha-------------------------------------------------
"T=&Ha数据库名:img_text
"T=&Ha表:imgdata
"T=&Ha字段名 类型
"T=&Haid 自动编号
"T=&Haimagedata1 文本
"T=&Haimagedata2 文本
"T=&Haimagedata3 文本
"T=&Hatext1 文本
"T=&Hatext2 文本
"T=&Hatext3 文本
"T=&Hatext4 文本
"T=&Hatext5 文本
"T=&Hatext6 文本
"T=&Hatext7 文本
"T=&Ha-------------------------------------------------
"T=&Ha还要新建一空的文件夹img存放图片.
"T=&Ha--------------------------------------------------
"T=&Ha
"T=&Ha以上是全部代码,希望能对大家有所帮助.80876
- 返回页面顶端


- 上一篇:为你的网页加一个Loading !!!!
- 下一篇:最简洁的多重查询的解决方案
返回上一页
打印本文
加入收藏
页面最后更新时间:2010年3月10日