- 无组件上传文字与图片至数据库之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解决方案 修改者:gztiger </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"> </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"> 化境编程界文件上传修改版
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}fOqupfile.asp -----------------------------------------------------------------------------------------
gK}fOq
gK}fOq<%Server.ScriptTimeOut=5000%>
gK}fOq<!--#include FILE="upload_5xsoft.inc"-->
gK}fOq<title>化境编程界文件上传修改版 修改者:gztiger </title>
gK}fOq<%
gK}fOqdim upload,file,formName,formPath,iCount
gK}fOqset upload=new upload_5xsoft ''建立上传对象
gK}fOq
gK}fOqText1=Trim(upload.form("Text1")) '----获取表单文本框信息(原来代码用for循环)-目的为了说明获取文本框信息的方法
gK}fOqText2=Trim(upload.form("Text2"))
gK}fOqText3=Trim(upload.form("Text3"))
gK}fOqText4=Trim(upload.form("Text4"))
gK}fOqText5=Trim(upload.form("Text5"))
gK}fOqText6=Trim(upload.form("Text6"))
gK}fOqText7=Trim(upload.form("Text7"))
gK}fOq
gK}fOq
gK}fOqiCount=0
gK}fOqn=1
gK}fOq
gK}fOqresponse.write "
gK}fOq"
gK}fOqfor each formName in upload.objFile ''------------------列出所有上传了的文件
gK}fOqset file=upload.file(formName) ''--------------------生成一个文件对象
gK}fOqImage_countn=Image_countn&","&file.FileName '----------把图象名做成数组
gK}fOqif file.FileSize>0 then ''------------------------如果 FileSize > 0 说明有文件数据
gK}fOqfile.SaveAs Server.mappath("img/"&file.FileName) ''----------保存文件
gK}fOqend if
gK}fOqn=n+1
gK}fOqset file=nothing
gK}fOqnext
gK}fOqset upload=nothing '-------------------------------'删除此对象
gK}fOqImage_Set=split(Image_countn,",")'---------------------返回数组
gK}fOq
gK}fOq'------添加信息到数据库-------------------------------------
gK}fOqConnstr="DBQ="+server.mappath("database\img_text.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
gK}fOqSet Conn=Server.createobject("ADODB.Connection")
gK}fOqConn.Open Connstr
gK}fOqSet Rs=Server.CreateObject("ADODB.RecordSet")
gK}fOqsqlstr="select * from imgdata"
gK}fOqRs.Open Sqlstr,Conn,1,3
gK}fOqif not rs.eof then
gK}fOqid=Rs("id")+1
gK}fOqelse
gK}fOqid=1
gK}fOqend if
gK}fOqRs.Addnew
gK}fOqRs("Text1")=Text1
gK}fOqRs("Text2")=Text2
gK}fOqRs("Text3")=Text3
gK}fOqRs("Text4")=Text4
gK}fOqRs("Text5")=Text5
gK}fOqRs("Text6")=Text6
gK}fOqRs("Text7")=Text7
gK}fOqRs("imagedata1")=Image_Set(1)
gK}fOqRs("imagedata2")=Image_Set(2)
gK}fOqRs("imagedata3")=Image_Set(3)
gK}fOqRs.Update
gK}fOqRs.Close
gK}fOqSet Rs=Nothing
gK}fOqupload_ok=true
gK}fOq
gK}fOqif upload_ok=true then
gK}fOq'-------回显提交信息---------------------------
gK}fOqresponse.Write("您上传的信息如下:"&"
gK}fOq")
gK}fOqConnstr="DBQ="+server.mappath("database\img_text.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
gK}fOqSet Conn=Server.createobject("ADODB.Connection")
gK}fOqConn.Open Connstr
gK}fOqSet Rs=Server.CreateObject("ADODB.RecordSet")
gK}fOqsqlstr="select * from imgdata order by id desc"
gK}fOqRs.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}fOqRs.Close
gK}fOqSet Rs=Nothing
gK}fOqend if
gK}fOq%>
gK}fOq
gK}fOqupload_5xsoft.inc ----------------------------------------------------------------------------------
gK}fOq<SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>
gK}fOqdim Data_5xsoft
gK}fOq
gK}fOqClass upload_5xsoft
gK}fOq
gK}fOqdim objForm,objFile,Version
gK}fOq
gK}fOqPublic function Form(strForm)
gK}fOqstrForm=lcase(strForm)
gK}fOqif not objForm.exists(strForm) then
gK}fOqForm=""
gK}fOqelse
gK}fOqForm=objForm(strForm)
gK}fOqend if
gK}fOqend function
gK}fOq
gK}fOqPublic function File(strFile)
gK}fOqstrFile=lcase(strFile)
gK}fOqif not objFile.exists(strFile) then
gK}fOqset File=new FileInfo
gK}fOqelse
gK}fOqset File=objFile(strFile)
gK}fOqend if
gK}fOqend function
gK}fOq
gK}fOq
gK}fOqPrivate Sub Class_Initialize
gK}fOqdim RequestData,sStart,vbCrlf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,theFile
gK}fOqdim iFileSize,sFilePath,sFileType,sForm&#118alue,sFileName
gK}fOqdim iFindStart,iFindEnd
gK}fOqdim iFormStart,iFormEnd,sFormName
gK}fOqVersion="化境HTTP上传程序 Version 2.0"
gK}fOqset objForm=Server.CreateObject("Scripting.Dictionary")
gK}fOqset objFile=Server.CreateObject("Scripting.Dictionary")
gK}fOqif Request.TotalBytes<1 then Exit Sub
gK}fOqset tStream = Server.CreateObject("adodb.stream")
gK}fOqset Data_5xsoft = Server.CreateObject("adodb.stream")
gK}fOqData_5xsoft.Type = 1
gK}fOqData_5xsoft.Mode =3
gK}fOqData_5xsoft.Open
gK}fOqData_5xsoft.Write Request.BinaryRead(Request.TotalBytes)
gK}fOqData_5xsoft.Position=0
gK}fOqRequestData =Data_5xsoft.Read
gK}fOq
gK}fOqiFormStart = 1
gK}fOqiFormEnd = LenB(RequestData)
gK}fOqvbCrlf = chrB(13) & chrB(10)
gK}fOqsStart = MidB(RequestData,1, InStrB(iFormStart,RequestData,vbCrlf)-1)
gK}fOqiStart = LenB (sStart)
gK}fOqiFormStart=iFormStart+iStart+1
gK}fOqwhile (iFormStart + 10) < iFormEnd
gK}fOqiInfoEnd = InStrB(iFormStart,RequestData,vbCrlf & vbCrlf)+3
gK}fOqtStream.Type = 1
gK}fOqtStream.Mode =3
gK}fOqtStream.Open
gK}fOqData_5xsoft.Position = iFormStart
gK}fOqData_5xsoft.CopyTo tStream,iInfoEnd-iFormStart
gK}fOqtStream.Position = 0
gK}fOqtStream.Type = 2
gK}fOqtStream.Charset ="gb2312"
gK}fOqsInfo = tStream.ReadText
gK}fOqtStream.Close
gK}fOq'取得表单项目名称
gK}fOqiFormStart = InStrB(iInfoEnd,RequestData,sStart)
gK}fOqiFindStart = InStr(22,sInfo,"name=""",1)+6
gK}fOqiFindEnd = InStr(iFindStart,sInfo,"""",1)
gK}fOqsFormName = lcase(Mid (sinfo,iFindStart,iFindEnd-iFindStart))
gK}fOq'如果是文件
gK}fOqif InStr (45,sInfo,"filename=""",1) > 0 then
gK}fOqset theFile=new FileInfo
gK}fOq'取得文件名
gK}fOqiFindStart = InStr(iFindEnd,sInfo,"filename=""",1)+10
gK}fOqiFindEnd = InStr(iFindStart,sInfo,"""",1)
gK}fOqsFileName = Mid (sinfo,iFindStart,iFindEnd-iFindStart)
gK}fOqtheFile.FileName=getFileName(sFileName)
gK}fOqtheFile.FilePath=getFilePath(sFileName)
gK}fOq'取得文件类型
gK}fOqiFindStart = InStr(iFindEnd,sInfo,"Content-Type: ",1)+14
gK}fOqiFindEnd = InStr(iFindStart,sInfo,vbCr)
gK}fOqtheFile.FileType =Mid (sinfo,iFindStart,iFindEnd-iFindStart)
gK}fOqtheFile.FileStart =iInfoEnd
gK}fOqtheFile.FileSize = iFormStart -iInfoEnd -3
gK}fOqtheFile.FormName=sFormName
gK}fOqif not objFile.Exists(sFormName) then
gK}fOqobjFile.add sFormName,theFile
gK}fOqend if
gK}fOqelse
gK}fOq'如果是表单项目
gK}fOqtStream.Type =1
gK}fOqtStream.Mode =3
gK}fOqtStream.Open
gK}fOqData_5xsoft.Position = iInfoEnd
gK}fOqData_5xsoft.CopyTo tStream,iFormStart-iInfoEnd-3
gK}fOqtStream.Position = 0
gK}fOqtStream.Type = 2
gK}fOqtStream.Charset ="gb2312"
gK}fOqsForm&#118alue = tStream.ReadText
gK}fOqtStream.Close
gK}fOqif objForm.Exists(sFormName) then
gK}fOqobjForm(sFormName)=objForm(sFormName)&", "&sForm&#118alue
gK}fOqelse
gK}fOqobjForm.Add sFormName,sForm&#118alue
gK}fOqend if
gK}fOqend if
gK}fOqiFormStart=iFormStart+iStart+1
gK}fOqwend
gK}fOqRequestData=""
gK}fOqset tStream =nothing
gK}fOqEnd Sub
gK}fOq
gK}fOqPrivate Sub Class_Terminate
gK}fOqif Request.TotalBytes>0 then
gK}fOqobjForm.RemoveAll
gK}fOqobjFile.RemoveAll
gK}fOqset objForm=nothing
gK}fOqset objFile=nothing
gK}fOqData_5xsoft.Close
gK}fOqset Data_5xsoft =nothing
gK}fOqend if
gK}fOqEnd Sub
gK}fOq
gK}fOq
gK}fOqPrivate function GetFilePath(FullPath)
gK}fOqIf FullPath <> "" Then
gK}fOqGetFilePath = left(FullPath,InStrRev(FullPath, "\"))
gK}fOqElse
gK}fOqGetFilePath = ""
gK}fOqEnd If
gK}fOqEnd function
gK}fOq
gK}fOqPrivate function GetFileName(FullPath)
gK}fOqIf FullPath <> "" Then
gK}fOqGetFileName = mid(FullPath,InStrRev(FullPath, "\")+1)
gK}fOqElse
gK}fOqGetFileName = ""
gK}fOqEnd If
gK}fOqEnd function
gK}fOqEnd Class
gK}fOq
gK}fOqClass FileInfo
gK}fOqdim FormName,FileName,FilePath,FileSize,FileType,FileStart
gK}fOqPrivate Sub Class_Initialize
gK}fOqFileName = ""
gK}fOqFilePath = ""
gK}fOqFileSize = 0
gK}fOqFileStart= 0
gK}fOqFormName = ""
gK}fOqFileType = ""
gK}fOqEnd Sub
gK}fOq
gK}fOqPublic function SaveAs(FullPath)
gK}fOqdim dr,ErrorChar,i
gK}fOqSaveAs=true
gK}fOqif trim(fullpath)="" or FileStart=0 or FileName="" or right(fullpath,1)="/" then exit function
gK}fOqset dr=CreateObject("Adodb.Stream")
gK}fOqdr.Mode=3
gK}fOqdr.Type=1
gK}fOqdr.Open
gK}fOqData_5xsoft.position=FileStart
gK}fOqData_5xsoft.copyto dr,FileSize
gK}fOqdr.SaveToFile FullPath,2
gK}fOqdr.Close
gK}fOqset dr=nothing
gK}fOqSaveAs=false
gK}fOqend function
gK}fOqEnd Class
gK}fOq</SCRIPT>
gK}fOq
gK}fOq-------------------------------------------------
gK}fOq数据库名:img_text
gK}fOq表:imgdata
gK}fOq字段名 类型
gK}fOqid 自动编号
gK}fOqimagedata1 文本
gK}fOqimagedata2 文本
gK}fOqimagedata3 文本
gK}fOqtext1 文本
gK}fOqtext2 文本
gK}fOqtext3 文本
gK}fOqtext4 文本
gK}fOqtext5 文本
gK}fOqtext6 文本
gK}fOqtext7 文本
gK}fOq-------------------------------------------------
gK}fOq还要新建一空的文件夹img存放图片.
gK}fOq--------------------------------------------------
gK}fOq
gK}fOq以上是全部代码,希望能对大家有所帮助.83799
- 返回页面顶端


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