ASP实现带数据库的文件上传 (asp上传带数据库)

随着互联网技术的不断发展,文件上传功能在网站开发中的使用越来越广泛。作为网站开发人员,如何实现一个带数据库的文件上传功能已成为我们需要掌握的技能之一。本文将讲解如何使用功能。

ASP简介

ASP(Active Server Pages)是一种动态的网页开发技术,它可以方便地将HTML和Script代码结合在一起进行Web应用程序的开发。ASP最初由微软公司开发,目前已经成为了一种非常流行的脚本语言,广泛应用于Web应用程序的开发中。

文件上传功能介绍

在Web应用程序中,文件上传是一种常见的功能。通过文件上传,用户可以将本地文件上传到服务器,从而实现分享、备份、下载等操作。常见的文件上传格式有图片、音频、视频、文档等,通过文件上传功能,可以方便地将多种文件上传到网站中。

数据库介绍

数据库是指按照一定规则组织起来的数据的。在Web应用程序中,数据库可以用来存储用户信息、订单信息、商品信息等数据。数据库可以让应用程序实现数据的持久化存储,使得数据在多个应用程序之间能够共享和使用。

如何实现带数据库的文件上传

在ASP中,通过使用FileSystemObject对象和ADODB.Recordset对象,可以很方便地实现文件上传和数据库操作。下面将简单介绍的步骤。

一、创建一个ASP页面

在Web应用程序中,创建一个ASP页面(例如:upload.asp),用于上传文件。

二、创建上传表单

在ASP页面中,使用HTML form标签,创建文件上传表单,并设置enctype属性为multipart/form-data。

“`html

“`

三、接受上传的文件

在ASP页面中,使用FileSystemObject对象,获取上传的文件,并将文件保存到服务器的指定目录中。

“`ASP

Dim objFSO, objFile

Set objFSO = Server.CreateObject(“Scripting.FileSystemObject”)

Set objFile = objFSO.GetFile(Request.Files(“fileToUpload”).Item(“FileName”))

objFile.SaveAs “d:\uploads\” & objFile.Name

Set objFile = Nothing

Set objFSO = Nothing

“`

四、保存文件信息到数据库

在ASP页面中,使用ADODB.Recordset对象,将上传的文件信息保存到数据库中。

“`ASP

Dim Conn, rs

Dim strSql

Set Conn = Server.CreateObject(“ADODB.Connection”)

Conn.Open “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” & Server.MapPath(“database\db.mdb”)

Set rs = Server.CreateObject(“ADODB.Recordset”)

strSql = “INSERT INTO upload (filename,filesize,uploadtime) VALUES (‘” & objFile.Name & “‘,'” & objFile.size & “‘,'” & Now() & “‘)”

rs.Open strSql, Conn

rs.Close

Set rs = Nothing

Conn.Close

Set Conn = Nothing

“`

五、完整的ASP页面代码

“`ASP

<%

Dim Conn, rs

Dim strSql

Dim objFSO, objFile

Set objFSO = Server.CreateObject(“Scripting.FileSystemObject”)

Set objFile = objFSO.GetFile(Request.Files(“fileToUpload”).Item(“FileName”))

objFile.SaveAs “d:\uploads\” & objFile.Name

Set objFile = Nothing

Set objFSO = Nothing

Set Conn = Server.CreateObject(“ADODB.Connection”)

Conn.Open “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” & Server.MapPath(“database\db.mdb”)

Set rs = Server.CreateObject(“ADODB.Recordset”)

strSql = “INSERT INTO upload (filename,filesize,uploadtime) VALUES (‘” & objFile.Name & “‘,'” & objFile.size & “‘,'” & Now() & “‘)”

rs.Open strSql, Conn

rs.Close

Set rs = Nothing

Conn.Close

Set Conn = Nothing

Response.Redirect “upload_success.asp”

%>

“`

六、

通过本文的介绍,我们了解了如何使用功能。在实际开发中,我们需要根据具体需求,进一步完善文件上传功能,以便满足不同用户的需求。同时,我们也需要注意文件上传安全性问题,防止文件上传功能被滥用。

相关问题拓展阅读:

ASP网站的数据库上传到服务器的路径怎么设置?

网站根目录找到conn这个文件

用记事明耐桥本亩缺打开

直接修改激猛里面的就可以了

不会在咨询我

/KS_Data/KesionCMS6.mdb/表示站点的根目录,也就是你存放站点首页的目录。在根目录下建立一个KS_Data的目录,把数据库放到这个目录就行了。当然你也可以建立其它名称的目埋型录来存放数据。如:/Database/myData.mdb还可以将数据库放在wwwroot主目录的上弯闹猜级目录,这样只有程序能访问到数据库弯哪,从客户端是访问不到的。

asp功能模块里将上传文件文件名和路径导入数据库

我刚改写了一个函数uploadfile(filety,savepath)

之一个参数是允许的后缀名第二个参数是保存地址

能够自动防止重名,返回值是新文件名。把新文件名写到数据库就行啦。

0 Then

formsize=request.totalbytes’ 取二进制流字节长度

formdata=request.binaryread(formsize)’ 读取二进制流内容

bncrlf=chrB(13)&chrB(10)

datastart=instrb(formdata,bncrlf&bncrlf)+’ 取二进制流文件开始位置 (两个回车换行符)

divider=leftB(formdata,instrb(formdata,bncrlf)-1) ‘ 定义取二进制流 Field 分隔标记 (内容为二进制)

dataend=instrb(datastart,formdata,divider)-datastart ‘ 取二进制流文件部分结束位置

‘2.将获取的信息以二进制流文件存放 — stm

Set strm=createObject(“adodb.stream”)

with strm

.type=’ 二进制模式

.mode=’ 指定打开模式为读写

.open

.write formdata’写入二腊液迹进制流内容

.position=’将游标指向数据首部

.type=’ 以文本模式读取

.CharSet = “gb2312” ‘设置中文编码

formhead=.ReadText(datastart- 1) ‘读取表单头部内容

End with

‘2.1获取上传的文件名称filename

fullname=fRegExpSgl(formhead,true,true,true,”*filename\=””(.*?)””*”,”$1″)

fname=Split(fullname,”\”)

filename=fname(UBound(fname)) ‘ 获取到文件名

‘判断文件类型是否轮并安全

filety=split(filety,”,”)’转化成数组

for i=0 to ubound(filety)

if lcase(right(filename,3))=lcase(filety(i)) then ‘right

exit for

else

end if

next

‘end 判断文件类型

Set fso = Server.CreateObject(“Scripting.FileSystemObject”)

If fso.FileExists(savepath&filename) Then

For i=1 To 999

Fxname=Split(filename,”.”)

Fn=Left(filename,InstrRev(filename,”.”)-1)

Fnx=fxname(UBound(fxname))

If Not fso.FileExists(SavePath&Fn&”(“&i&”).”&Fnx) Then

filename=Fn&”(“&i&”).”&Fnx

Exit For

End If

Next

End If

‘3.从stm二进制流文件中获取有效信息 及 保存文件

Set formstrm=createOBject(“adodb.stream”)

with formstrm

.type=’ 二进制模式

.mode=3

.open

strm.position = datastart ‘ 指定 stm 对象的起始位置, 以变量 bStart 的值为起始位置

strm.copyTo formstrm,dataend ‘ 拷贝 stm 二进制流至 fromStm 对象, 长度为 bEnd 变量的长度

.saveTofile (savepath&filename),2 ‘ 保存文件, 如果存在相同名称, 则覆盖

.close

end with

Set strm=Nothing

Set formstrm=Nothing

‘dele the old photo and write the position to the user table faceurl

‘findout the old photo

upload=filename

‘response.End 这个导致下面的所有的将输出不了

End If

‘end upload****************

end function

function fRegExpSgl(str,glb,igc,mtl,pt,rpt)

dim re

set re=new RegExp

re.global=glb

re.ignoreCase=igc

re.multiline=mtl

re.pattern=pt

fRegExpSgl=re.replace(str,rpt)

set re=nothing

end function

关于asp上传带数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » ASP实现带数据库的文件上传 (asp上传带数据库)