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

给个模块或教程,或是QQ联系,都可以....... 给个模块或教程,或是QQ联系,都可以.... 展开
 我来答
edadream
2010-10-08 · 超过15用户采纳过TA的回答
知道答主
回答量:91
采纳率:0%
帮助的人:23.6万
展开全部
我刚改写了一个函数uploadfile(filety,savepath)
第一个参数是允许的后缀名第二个参数是保存地址
能够自动防止重名,返回值是新文件名。把新文件名写到数据库就行啦。
<%
'该文件没有使用到gobal.asp测试中
'文件上传函数

function upload(filety,savepath)
'start upload****************

'***********************************
if filety="" or savepath=""then
filety= "jpg,gif,bmp,png"'允许的文件类型
savepath=server.mappath("/")&"\cache\" '图片路径
end if
'1.获取从文件上传表单提交过来的数据
If request.totalbytes>0 Then
formsize=request.totalbytes ' 取二进制流字节长度
formdata=request.binaryread(formsize) ' 读取二进制流内容
bncrlf=chrB(13)&chrB(10)
datastart=instrb(formdata,bncrlf&bncrlf)+3 ' 取二进制流文件开始位置 (两个回车换行符)
divider=leftB(formdata,instrb(formdata,bncrlf)-1) ' 定义取二进制流 Field 分隔标记 (内容为二进制)
dataend=instrb(datastart,formdata,divider)-datastart ' 取二进制流文件部分结束位置
'2.将获取的信息以二进制流文件存放 --- stm
Set strm=createObject("adodb.stream")
with strm
.type=1 ' 二进制模式
.mode=3 ' 指定打开模式为读写
.open
.write formdata '写入二进制流内容
.position=0 '将游标指向数据首部
.type=2 ' 以文本模式读取
.CharSet = "gb2312" '设置中文编码
formhead=.ReadText(datastart- 1) '读取表单头部内容
End with
'2.1获取上传的文件名称filename
fullname=fRegExpSgl(formhead,true,true,true,"[\s\S]*filename\=""(.*?)""[\s\S]*","$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=1 ' 二进制模式
.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

%>
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式