极品桌面极品CG红豆SKIN
加载中...
爆笑网文网页制作精妙网文冲浪宝典软件教学操作系统安全防御小说连载

ASP技术

ASP.Net

网页技术

数据库类

网站相关

XML

JSP编程

建站经验

PHP技术

MS SQL

asp标示及命令集合
Vbscript类型转换
无组件上传文字与图片至数
几种常用的表单输入判断
数据分页方法新思路,速度
在ASP中使用SQL语句
在ASP中使用SQL语句
在ASP中使用SQL语句
利用stream直接下载
有关ASP的一些常见问题
VBScript函数
一个实用的ASP分页函数
SQL四条最基本的数据操
按钮链接乾坤大挪移
将ACCESS转化成SQ
当前位置:极品网文-> 网页制作-> ASP技术-> 浏览文章[双击自动滚屏]
无组件上传文字与图片至数据库之gztiger解决方案
作者:未知 来源:未知 添加时间:2004年5月7日
<!-- 郑 重 声 明

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

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

——gztiger

-->

<html>

<head>

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

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

</head>

<body bgcolor="#FFFFFF" text="#000000">

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

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

<tr>

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

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

</tr>

</table>

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

<tr bgcolor="#CCCCCC">

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

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

</tr>

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

<td bgcolor="#eeeeee" height="92">

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

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

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

-->

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

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

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

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

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

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

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

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

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

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

</td>

</tr>

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

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

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

</tr>

</table>

</form>

</body>

</html>



upfile.asp -----------------------------------------------------------------------------------------



<%Server.ScriptTimeOut=5000%>

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

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

<%

dim upload,file,formName,formPath,iCount

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



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

Text2=Trim(upload.form("Text2"))

Text3=Trim(upload.form("Text3"))

Text4=Trim(upload.form("Text4"))

Text5=Trim(upload.form("Text5"))

Text6=Trim(upload.form("Text6"))

Text7=Trim(upload.form("Text7"))





iCount=0

n=1



response.write "<br>"

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

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

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

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

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

end if

n=n+1

set file=nothing

next

set upload=nothing '-------------------------------'删除此对象

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



'------添加信息到数据库-------------------------------------

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

Set Conn=Server.createobject("ADODB.Connection")

Conn.Open Connstr

Set Rs=Server.CreateObject("ADODB.RecordSet")

sqlstr="select * from imgdata"

Rs.Open Sqlstr,Conn,1,3

if not rs.eof then

id=Rs("id")+1

else

id=1

end if

Rs.Addnew

Rs("Text1")=Text1

Rs("Text2")=Text2

Rs("Text3")=Text3

Rs("Text4")=Text4

Rs("Text5")=Text5

Rs("Text6")=Text6

Rs("Text7")=Text7

Rs("imagedata1")=Image_Set(1)

Rs("imagedata2")=Image_Set(2)

Rs("imagedata3")=Image_Set(3)

Rs.Update

Rs.Close

Set Rs=Nothing

upload_ok=true



if upload_ok=true then

'-------回显提交信息---------------------------

response.Write("您上传的信息如下:"&"<br>")

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

Set Conn=Server.createobject("ADODB.Connection")

Conn.Open Connstr

Set Rs=Server.CreateObject("ADODB.RecordSet")

sqlstr="select * from imgdata order by id desc"

Rs.Open Sqlstr,Conn,1,1

%>

文本1:<%=Rs("Text1")%><br>

文本2:<%=Rs("Text2")%><br>

文本3:<%=Rs("Text3")%><br>

文本4:<%=Rs("Text4")%><br>

文本5:<%=Rs("Text5")%><br>

文本6:<%=Rs("Text6")%><br>

文本7:<%=Rs("Text7")%><br>

<%if Rs("imagedata1")<>"" then%>

图象1:<%=Rs("imagedata1")%><br>

<img src="img/<%=Rs("imagedata1")%>"><br>

<%end if%>

<%if Rs("imagedata2")<>"" then%>

图象2:<%=Rs("imagedata2")%><br>

<img src="img/<%=Rs("imagedata2")%>" ><br>

<%end if%>

<%if Rs("imagedata3")<>"" then%>

图象3:<%=Rs("imagedata3")%><br>

<img src="img/<%=Rs("imagedata3")%>" ><br>

<% end if

Rs.Close

Set Rs=Nothing

end if

%>



upload_5xsoft.inc ----------------------------------------------------------------------------------

<SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>

dim Data_5xsoft



Class upload_5xsoft



dim objForm,objFile,Version



Public function Form(strForm)

strForm=lcase(strForm)

if not objForm.exists(strForm) then

Form=""

else

Form=objForm(strForm)

end if

end function



Public function File(strFile)

strFile=lcase(strFile)

if not objFile.exists(strFile) then

set File=new FileInfo

else

set File=objFile(strFile)

end if

end function





Private Sub Class_Initialize

dim RequestData,sStart,vbCrlf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,theFile

dim iFileSize,sFilePath,sFileType,sForm&#118alue,sFileName

dim iFindStart,iFindEnd

dim iFormStart,iFormEnd,sFormName

Version="化境HTTP上传程序 Version 2.0"

set objForm=Server.CreateObject("Scripting.Dictionary")

set objFile=Server.CreateObject("Scripting.Dictionary")

if Request.TotalBytes<1 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) < iFormEnd

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

tStream.Type = 1

tStream.Mode =3

tStream.Open

Data_5xsoft.Position = iFormStart

Data_5xsoft.CopyTo tStream,iInfoEnd-iFormStart

tStream.Position = 0

tStream.Type = 2

tStream.Charset ="gb2312"

sInfo = tStream.ReadText

tStream.Close

'取得表单项目名称

iFormStart = InStrB(iInfoEnd,RequestData,sStart)

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

iFindEnd = InStr(iFindStart,sInfo,"""",1)

sFormName = lcase(Mid (sinfo,iFindStart,iFindEnd-iFindStart))

'如果是文件

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

set theFile=new FileInfo

'取得文件名

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

iFindEnd = InStr(iFindStart,sInfo,"""",1)

sFileName = Mid (sinfo,iFindStart,iFindEnd-iFindStart)

theFile.FileName=getFileName(sFileName)

theFile.FilePath=getFilePath(sFileName)

'取得文件类型

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

iFindEnd = InStr(iFindStart,sInfo,vbCr)

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

theFile.FileStart =iInfoEnd

theFile.FileSize = iFormStart -iInfoEnd -3

theFile.FormName=sFormName

if not objFile.Exists(sFormName) then

objFile.add sFormName,theFile

end if

else

'如果是表单项目

tStream.Type =1

tStream.Mode =3

tStream.Open

Data_5xsoft.Position = iInfoEnd

Data_5xsoft.CopyTo tStream,iFormStart-iInfoEnd-3

tStream.Position = 0

tStream.Type = 2

tStream.Charset ="gb2312"

sForm&#118alue = tStream.ReadText

tStream.Close

if objForm.Exists(sFormName) then

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

else

objForm.Add sFormName,sForm&#118alue

end if

end if

iFormStart=iFormStart+iStart+1

wend

RequestData=""

set tStream =nothing

End Sub



Private Sub Class_Terminate

if Request.TotalBytes>0 then

objForm.RemoveAll

objFile.RemoveAll

set objForm=nothing

set objFile=nothing

Data_5xsoft.Close

set Data_5xsoft =nothing

end if

End Sub





Private function GetFilePath(FullPath)

If FullPath <> "" Then

GetFilePath = left(FullPath,InStrRev(FullPath, "\"))

Else

GetFilePath = ""

End If

End function



Private function GetFileName(FullPath)

If FullPath <> "" Then

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

Else

GetFileName = ""

End If

End function

End Class



Class 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

</SCRIPT>



-------------------------------------------------

数据库名:img_text

表:imgdata

字段名 类型

id 自动编号

imagedata1 文本

imagedata2 文本

imagedata3 文本

text1 文本

text2 文本

text3 文本

text4 文本

text5 文本

text6 文本

text7 文本

-------------------------------------------------

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

--------------------------------------------------



以上是全部代码,希望能对大家有所帮助.

...
返回页面顶端
[返回上一页] [打印本文] [加入收藏]
页面最后更新时间:2009年2月4日
上一篇:为你的网页加一个Loading !!!!
下一篇:最简洁的多重查询的解决方案
相关文章
没有相关文章