加载中...
查看文章
  • 无组件上传文字与图片至数据库之gztiger解决方案
  • 作者:未知 来源:未知 添加时间:2004年5月7日 字体:
  • 83802<!-- 郑 重 声 明

    gK}fOq 这是免费代码,从《化境无组件上传图片2.0》修改而来,目的只为对这问题有困扰的朋友有所帮助,

    gK}fOq 并对《化境无组件上传图片2.0》的作者说声:谢谢!本代码在iis5+access2000+asp测试通过

    gK}fOq ——gztiger

    gK}fOq -->

    gK}fOq <html>

    gK}fOq <head>

    gK}fOq <title>化境编程界无组件上传文字与图片至数据库之gztiger解决方案&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;修改者:gztiger&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</title>

    gK}fOq <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

    gK}fOq </head>

    gK}fOq <body bgcolor="#FFFFFF" text="#000000">

    gK}fOq <form name="form1" method="post" action="upfile.asp" enctype="multipart/form-data" >

    gK}fOq <table border="1" cellspacing="0" cellpadding="0" bordercolorlight="#000000" bordercolordark="#CCCCCC" width="91" height="23">

    gK}fOq <tr>

    gK}fOq <td align="left" valign="middle" height="18" width="18">&nbsp;</td>

    gK}fOq <td bgcolor="#CCCCCC" align="left" valign="middle" height="18" width="67"> 文件上传</td>

    gK}fOq </tr>

    gK}fOq </table>

    gK}fOq <table width="71%" border="1" cellspacing="0" cellpadding="5" align="center" bordercolordark="#CCCCCC" bordercolorlight="#000000">

    gK}fOq <tr bgcolor="#CCCCCC">

    gK}fOq <td height="22" align="left" valign="middle" bgcolor="#CCCCCC">&nbsp;化境编程界文件上传修改版

    gK}fOq         修改者:<a href="mailto:gztiger@21cn.com">gztiger</a> </td>

    gK}fOq </tr>

    gK}fOq <tr align="left" valign="middle" bgcolor="#eeeeee">

    gK}fOq <td bgcolor="#eeeeee" height="92">

    gK}fOq <!--此处可任意添加多个文本与文件框

    gK}fOq 在upfile.asp中对应添加TextN=Trim(upload.form("TextN")) 、Rs("imagedataN")=Image_Set(N)

    gK}fOq 回显提交信息就不用说了 ,数据库表中亦要添加相对字段名:)

    gK}fOq -->

    gK}fOq 文本框1:<input type="text" name="Text1" &#118alue="图片与文本上传测试1" >
    gK}fOq

    gK}fOq 文本框2:<input type="text" name="Text2" &#118alue="图片与文本上传测试2" >
    gK}fOq

    gK}fOq 文本框3:<input type="text" name="Text3" &#118alue="图片与文本上传测试3" >
    gK}fOq

    gK}fOq 图象1 :<input type="file" name="Image1" style="width:400" &#118alue="">
    gK}fOq

    gK}fOq 图象2 :<input type="file" name="Image2" style="width:400" &#118alue="">
    gK}fOq

    gK}fOq 图象3 :<input type="file" name="Image3" style="width:400" &#118alue="">
    gK}fOq

    gK}fOq 文本框4:<input type="text" name="Text4" &#118alue="图片与文本上传测试4" >
    gK}fOq

    gK}fOq 文本框5:<input type="text" name="Text5" &#118alue="图片与文本上传测试5" >
    gK}fOq

    gK}fOq 文本框6:<input type="text" name="Text6" &#118alue="图片与文本上传测试6" >
    gK}fOq

    gK}fOq 文本框7:<input type="text" name="Text7" &#118alue="图片与文本上传测试7" >

    gK}fOq </td>

    gK}fOq </tr>

    gK}fOq <tr align="center" valign="middle" bgcolor="#eeeeee">

    gK}fOq <td bgcolor="#eeeeee" height="24"> <input type="submit" name="Submit" &#118alue="提 交" class="bt">

    gK}fOq <input type="reset" name="Submit2" &#118alue="清 空" class="bt"> </td>

    gK}fOq </tr>

    gK}fOq </table>

    gK}fOq </form>

    gK}fOq </body>

    gK}fOq </html>

    gK}fOq

    gK}fOq upfile.asp -----------------------------------------------------------------------------------------

    gK}fOq

    gK}fOq <%Server.ScriptTimeOut=5000%>

    gK}fOq <!--#include FILE="upload_5xsoft.inc"-->

    gK}fOq <title>化境编程界文件上传修改版&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;修改者:gztiger&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</title>

    gK}fOq <%

    gK}fOq dim upload,file,formName,formPath,iCount

    gK}fOq set upload=new upload_5xsoft ''建立上传对象

    gK}fOq

    gK}fOq Text1=Trim(upload.form("Text1")) '----获取表单文本框信息(原来代码用for循环)-目的为了说明获取文本框信息的方法

    gK}fOq Text2=Trim(upload.form("Text2"))

    gK}fOq Text3=Trim(upload.form("Text3"))

    gK}fOq Text4=Trim(upload.form("Text4"))

    gK}fOq Text5=Trim(upload.form("Text5"))

    gK}fOq Text6=Trim(upload.form("Text6"))

    gK}fOq Text7=Trim(upload.form("Text7"))

    gK}fOq

    gK}fOq

    gK}fOq iCount=0

    gK}fOq n=1

    gK}fOq

    gK}fOq response.write "
    gK}fOq "

    gK}fOq for each formName in upload.objFile ''------------------列出所有上传了的文件

    gK}fOq set file=upload.file(formName) ''--------------------生成一个文件对象

    gK}fOq Image_countn=Image_countn&","&file.FileName '----------把图象名做成数组

    gK}fOq if file.FileSize>0 then ''------------------------如果 FileSize > 0 说明有文件数据

    gK}fOq file.SaveAs Server.mappath("img/"&file.FileName) ''----------保存文件

    gK}fOq end if

    gK}fOq n=n+1

    gK}fOq set file=nothing

    gK}fOq next

    gK}fOq set upload=nothing '-------------------------------'删除此对象

    gK}fOq Image_Set=split(Image_countn,",")'---------------------返回数组

    gK}fOq

    gK}fOq '------添加信息到数据库-------------------------------------

    gK}fOq Connstr="DBQ="+server.mappath("database\img_text.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"

    gK}fOq Set Conn=Server.createobject("ADODB.Connection")

    gK}fOq Conn.Open Connstr

    gK}fOq Set Rs=Server.CreateObject("ADODB.RecordSet")

    gK}fOq sqlstr="select * from imgdata"

    gK}fOq Rs.Open Sqlstr,Conn,1,3

    gK}fOq if not rs.eof then

    gK}fOq id=Rs("id")+1

    gK}fOq else

    gK}fOq id=1

    gK}fOq end if

    gK}fOq Rs.Addnew

    gK}fOq Rs("Text1")=Text1

    gK}fOq Rs("Text2")=Text2

    gK}fOq Rs("Text3")=Text3

    gK}fOq Rs("Text4")=Text4

    gK}fOq Rs("Text5")=Text5

    gK}fOq Rs("Text6")=Text6

    gK}fOq Rs("Text7")=Text7

    gK}fOq Rs("imagedata1")=Image_Set(1)

    gK}fOq Rs("imagedata2")=Image_Set(2)

    gK}fOq Rs("imagedata3")=Image_Set(3)

    gK}fOq Rs.Update

    gK}fOq Rs.Close

    gK}fOq Set Rs=Nothing

    gK}fOq upload_ok=true

    gK}fOq

    gK}fOq if upload_ok=true then

    gK}fOq '-------回显提交信息---------------------------

    gK}fOq response.Write("您上传的信息如下:"&"
    gK}fOq ")

    gK}fOq Connstr="DBQ="+server.mappath("database\img_text.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"

    gK}fOq Set Conn=Server.createobject("ADODB.Connection")

    gK}fOq Conn.Open Connstr

    gK}fOq Set Rs=Server.CreateObject("ADODB.RecordSet")

    gK}fOq sqlstr="select * from imgdata order by id desc"

    gK}fOq Rs.Open Sqlstr,Conn,1,1

    gK}fOq %>

    gK}fOq 文本1:<%=Rs("Text1")%>
    gK}fOq

    gK}fOq 文本2:<%=Rs("Text2")%>
    gK}fOq

    gK}fOq 文本3:<%=Rs("Text3")%>
    gK}fOq

    gK}fOq 文本4:<%=Rs("Text4")%>
    gK}fOq

    gK}fOq 文本5:<%=Rs("Text5")%>
    gK}fOq

    gK}fOq 文本6:<%=Rs("Text6")%>
    gK}fOq

    gK}fOq 文本7:<%=Rs("Text7")%>
    gK}fOq

    gK}fOq <%if Rs("imagedata1")<>"" then%>

    gK}fOq 图象1:<%=Rs("imagedata1")%>
    gK}fOq

    gK}fOq <img src="img/<%=Rs("imagedata1")%>">
    gK}fOq

    gK}fOq <%end if%>

    gK}fOq <%if Rs("imagedata2")<>"" then%>

    gK}fOq 图象2:<%=Rs("imagedata2")%>
    gK}fOq

    gK}fOq <img src="img/<%=Rs("imagedata2")%>" >
    gK}fOq

    gK}fOq <%end if%>

    gK}fOq <%if Rs("imagedata3")<>"" then%>

    gK}fOq 图象3:<%=Rs("imagedata3")%>
    gK}fOq

    gK}fOq <img src="img/<%=Rs("imagedata3")%>" >
    gK}fOq

    gK}fOq <% end if

    gK}fOq Rs.Close

    gK}fOq Set Rs=Nothing

    gK}fOq end if

    gK}fOq %>

    gK}fOq

    gK}fOq upload_5xsoft.inc ----------------------------------------------------------------------------------

    gK}fOq <SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>

    gK}fOq dim Data_5xsoft

    gK}fOq

    gK}fOq Class upload_5xsoft

    gK}fOq

    gK}fOq dim objForm,objFile,Version

    gK}fOq

    gK}fOq Public function Form(strForm)

    gK}fOq strForm=lcase(strForm)

    gK}fOq if not objForm.exists(strForm) then

    gK}fOq Form=""

    gK}fOq else

    gK}fOq Form=objForm(strForm)

    gK}fOq end if

    gK}fOq end function

    gK}fOq

    gK}fOq Public function File(strFile)

    gK}fOq strFile=lcase(strFile)

    gK}fOq if not objFile.exists(strFile) then

    gK}fOq set File=new FileInfo

    gK}fOq else

    gK}fOq set File=objFile(strFile)

    gK}fOq end if

    gK}fOq end function

    gK}fOq

    gK}fOq

    gK}fOq Private Sub Class_Initialize

    gK}fOq dim RequestData,sStart,vbCrlf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,theFile

    gK}fOq dim iFileSize,sFilePath,sFileType,sForm&#118alue,sFileName

    gK}fOq dim iFindStart,iFindEnd

    gK}fOq dim iFormStart,iFormEnd,sFormName

    gK}fOq Version="化境HTTP上传程序 Version 2.0"

    gK}fOq set objForm=Server.CreateObject("Scripting.Dictionary")

    gK}fOq set objFile=Server.CreateObject("Scripting.Dictionary")

    gK}fOq if Request.TotalBytes<1 then Exit Sub

    gK}fOq set tStream = Server.CreateObject("adodb.stream")

    gK}fOq set Data_5xsoft = Server.CreateObject("adodb.stream")

    gK}fOq Data_5xsoft.Type = 1

    gK}fOq Data_5xsoft.Mode =3

    gK}fOq Data_5xsoft.Open

    gK}fOq Data_5xsoft.Write Request.BinaryRead(Request.TotalBytes)

    gK}fOq Data_5xsoft.Position=0

    gK}fOq RequestData =Data_5xsoft.Read

    gK}fOq

    gK}fOq iFormStart = 1

    gK}fOq iFormEnd = LenB(RequestData)

    gK}fOq vbCrlf = chrB(13) & chrB(10)

    gK}fOq sStart = MidB(RequestData,1, InStrB(iFormStart,RequestData,vbCrlf)-1)

    gK}fOq iStart = LenB (sStart)

    gK}fOq iFormStart=iFormStart+iStart+1

    gK}fOq while (iFormStart + 10) < iFormEnd

    gK}fOq iInfoEnd = InStrB(iFormStart,RequestData,vbCrlf & vbCrlf)+3

    gK}fOq tStream.Type = 1

    gK}fOq tStream.Mode =3

    gK}fOq tStream.Open

    gK}fOq Data_5xsoft.Position = iFormStart

    gK}fOq Data_5xsoft.CopyTo tStream,iInfoEnd-iFormStart

    gK}fOq tStream.Position = 0

    gK}fOq tStream.Type = 2

    gK}fOq tStream.Charset ="gb2312"

    gK}fOq sInfo = tStream.ReadText

    gK}fOq tStream.Close

    gK}fOq '取得表单项目名称

    gK}fOq iFormStart = InStrB(iInfoEnd,RequestData,sStart)

    gK}fOq iFindStart = InStr(22,sInfo,"name=""",1)+6

    gK}fOq iFindEnd = InStr(iFindStart,sInfo,"""",1)

    gK}fOq sFormName = lcase(Mid (sinfo,iFindStart,iFindEnd-iFindStart))

    gK}fOq '如果是文件

    gK}fOq if InStr (45,sInfo,"filename=""",1) > 0 then

    gK}fOq set theFile=new FileInfo

    gK}fOq '取得文件名

    gK}fOq iFindStart = InStr(iFindEnd,sInfo,"filename=""",1)+10

    gK}fOq iFindEnd = InStr(iFindStart,sInfo,"""",1)

    gK}fOq sFileName = Mid (sinfo,iFindStart,iFindEnd-iFindStart)

    gK}fOq theFile.FileName=getFileName(sFileName)

    gK}fOq theFile.FilePath=getFilePath(sFileName)

    gK}fOq '取得文件类型

    gK}fOq iFindStart = InStr(iFindEnd,sInfo,"Content-Type: ",1)+14

    gK}fOq iFindEnd = InStr(iFindStart,sInfo,vbCr)

    gK}fOq theFile.FileType =Mid (sinfo,iFindStart,iFindEnd-iFindStart)

    gK}fOq theFile.FileStart =iInfoEnd

    gK}fOq theFile.FileSize = iFormStart -iInfoEnd -3

    gK}fOq theFile.FormName=sFormName

    gK}fOq if not objFile.Exists(sFormName) then

    gK}fOq objFile.add sFormName,theFile

    gK}fOq end if

    gK}fOq else

    gK}fOq '如果是表单项目

    gK}fOq tStream.Type =1

    gK}fOq tStream.Mode =3

    gK}fOq tStream.Open

    gK}fOq Data_5xsoft.Position = iInfoEnd

    gK}fOq Data_5xsoft.CopyTo tStream,iFormStart-iInfoEnd-3

    gK}fOq tStream.Position = 0

    gK}fOq tStream.Type = 2

    gK}fOq tStream.Charset ="gb2312"

    gK}fOq sForm&#118alue = tStream.ReadText

    gK}fOq tStream.Close

    gK}fOq if objForm.Exists(sFormName) then

    gK}fOq objForm(sFormName)=objForm(sFormName)&", "&sForm&#118alue

    gK}fOq else

    gK}fOq objForm.Add sFormName,sForm&#118alue

    gK}fOq end if

    gK}fOq end if

    gK}fOq iFormStart=iFormStart+iStart+1

    gK}fOq wend

    gK}fOq RequestData=""

    gK}fOq set tStream =nothing

    gK}fOq End Sub

    gK}fOq

    gK}fOq Private Sub Class_Terminate

    gK}fOq if Request.TotalBytes>0 then

    gK}fOq objForm.RemoveAll

    gK}fOq objFile.RemoveAll

    gK}fOq set objForm=nothing

    gK}fOq set objFile=nothing

    gK}fOq Data_5xsoft.Close

    gK}fOq set Data_5xsoft =nothing

    gK}fOq end if

    gK}fOq End Sub

    gK}fOq

    gK}fOq

    gK}fOq Private function GetFilePath(FullPath)

    gK}fOq If FullPath <> "" Then

    gK}fOq GetFilePath = left(FullPath,InStrRev(FullPath, "\"))

    gK}fOq Else

    gK}fOq GetFilePath = ""

    gK}fOq End If

    gK}fOq End function

    gK}fOq

    gK}fOq Private function GetFileName(FullPath)

    gK}fOq If FullPath <> "" Then

    gK}fOq GetFileName = mid(FullPath,InStrRev(FullPath, "\")+1)

    gK}fOq Else

    gK}fOq GetFileName = ""

    gK}fOq End If

    gK}fOq End function

    gK}fOq End Class

    gK}fOq

    gK}fOq Class FileInfo

    gK}fOq dim FormName,FileName,FilePath,FileSize,FileType,FileStart

    gK}fOq Private Sub Class_Initialize

    gK}fOq FileName = ""

    gK}fOq FilePath = ""

    gK}fOq FileSize = 0

    gK}fOq FileStart= 0

    gK}fOq FormName = ""

    gK}fOq FileType = ""

    gK}fOq End Sub

    gK}fOq

    gK}fOq Public function SaveAs(FullPath)

    gK}fOq dim dr,ErrorChar,i

    gK}fOq SaveAs=true

    gK}fOq if trim(fullpath)="" or FileStart=0 or FileName="" or right(fullpath,1)="/" then exit function

    gK}fOq set dr=CreateObject("Adodb.Stream")

    gK}fOq dr.Mode=3

    gK}fOq dr.Type=1

    gK}fOq dr.Open

    gK}fOq Data_5xsoft.position=FileStart

    gK}fOq Data_5xsoft.copyto dr,FileSize

    gK}fOq dr.SaveToFile FullPath,2

    gK}fOq dr.Close

    gK}fOq set dr=nothing

    gK}fOq SaveAs=false

    gK}fOq end function

    gK}fOq End Class

    gK}fOq </SCRIPT>

    gK}fOq

    gK}fOq -------------------------------------------------

    gK}fOq 数据库名:img_text

    gK}fOq 表:imgdata

    gK}fOq 字段名 类型

    gK}fOq id 自动编号

    gK}fOq imagedata1 文本

    gK}fOq imagedata2 文本

    gK}fOq imagedata3 文本

    gK}fOq text1 文本

    gK}fOq text2 文本

    gK}fOq text3 文本

    gK}fOq text4 文本

    gK}fOq text5 文本

    gK}fOq text6 文本

    gK}fOq text7 文本

    gK}fOq -------------------------------------------------

    gK}fOq 还要新建一空的文件夹img存放图片.

    gK}fOq --------------------------------------------------

    gK}fOq

    gK}fOq 以上是全部代码,希望能对大家有所帮助.83799
  • 返回页面顶端
  • 上一篇:为你的网页加一个Loading !!!!
  • 下一篇:最简洁的多重查询的解决方案
  • 返回上一页 打印本文 加入收藏
  • 页面最后更新时间:2011年5月18日