注册 登录
编程论坛 ASP技术论坛

[求助]怎样识别上传文件类型,并写入数据库

thbwn 发布于 2007-10-04 21:06, 1069 次点击
上传文件时,怎样识别文件类型,并将类型以图片的方式写入数据库,如:images/rar.gif、images/gif.gif……,调用时,文件类型显示相关类型的小图片。
15 回复
#2
thbwn2007-10-05 01:39
一般文件扩展为三个字母,通过这种方法可以判断,但像torrent就不行了.望大虾们提供更好的方法:
'<!--判断文件类型
t_filetype=LCase(Right(SaveFileName,3))
if t_filetype="rar" then
typepic="FileType/rar.gif"
end if

if t_filetype="asp" then
typepic="FileType/asp.gif"
end if

if t_filetype="asp" then
typepic="FileType/asp.gif"
end if

……

'//-->
然后通过rs("type")=typepic写入数据库。

要显示,在相应位置上加入代码:<img src="<%=rs("type")%>>即可。
#3
thbwn2007-10-05 01:42
定义常见的几种文件显示相应的图片类型,其他的均显示同一图片,如何实现?
#4
shaoli42612007-10-05 01:49

我用的是vb的split函数
function getext(filename)
setname=split(filename,".")
numname=ubound(setname)
if numname=0 then
getext="no" ‘没有帖子
else
getext="."&setname(numname-1)
end if
end function

#5
thbwn2007-10-05 08:24

我的程序上传后文件名不变,有的文件名里有几个".",用split分割,就不准了,除非,上传后文件名是随机的,以年月日时间命名.

#6
shaoli42612007-10-05 13:44
这个知道啊!你上传后文件名是随机的,但是扩展名不会随机啊!split产生数组,我们去这个数组的最后一个,不就是扩展名了么
#7
thbwn2007-10-05 15:44

我想调用查看正确与否,怎样看效果?
用<%getext(filename)%>不行罗!道行浅,学习中,不要见笑哟

#8
shaoli42612007-10-05 15:50

那道理还是一样的啊!你得到文件名了,怎么判断呢?

[此贴子已经被作者于2007-10-5 19:17:25编辑过]

#9
thbwn2007-10-05 15:52
这个函数不是取扩展名的值吗,应该能测试结果,如:.rar\.torrent等等。
#10
thbwn2007-10-05 16:56

斑竹,你的方法不行,下面的结果值是:.147,正确的应该是:torrent.

<%
filename = "d:1.35.147.torrent"

function getext(filename)
setname=split(filename,".")
numname=ubound(setname)
if numname=0 then
getext="no"
else
getext="."&setname(numname-1)
end if
response.Write""&getext&""
end function

getext(filename)

%>

#11
thbwn2007-10-05 16:57
正确函数是:
<%
Path = "d:1.35.147.torrent"

function cutname(path)
Dim place,pathlen
if path = "" then
exit function
end if
place = instrrev(path,".")
pathlen = len(path)
cutname = right(path,pathlen-place)
response.Write""&cutname&""
end function

cutname(path) '调用显示
%>

[此贴子已经被作者于2007-10-5 16:58:28编辑过]

#12
thbwn2007-10-05 17:01
getext应该是定义的一个变量吧,
#13
yms1232007-10-05 17:16
以下是引用shaoli4261在2007-10-5 1:49:13的发言:

我用的是vb的split函数
function getext(filename)
setname=split(filename,".")
numname=ubound(setname)
if numname=0 then
getext="no" ‘没有帖子
else
getext="."&setname(numname-1)
end if
end function

getext是函数的返回值
在vb里函数名作为返回值return 使用的比如
Function ReTest()
ReTest="返回值测试"
End Function
Response.Write ReTest()

#14
shaoli42612007-10-05 19:18

[CODE]我用的是vb的split函数
function getext(filename)
setname=split(filename,".")
numname=ubound(setname)
if numname=0 then
getext="no" ‘没有帖子
else
getext="."&setname(numname-1)
end if
end function[/CODE]

那这样子可不可以得到他的扩展名呢?

#15
thbwn2007-10-05 20:48
<%
path = "1.2.8.8111.torrent"
filen = Right(path,Len(path)-InStrRev(path,"."))
response.Write""&filen&""
%>
返回值是:torrent
#16
shaoli42612007-10-05 21:36

<%
path = "1.2.8.8111.torrent"
filen = Right(path,Len(path)-InStrRev(path,"."))
response.Write""&filen&""
%>
返回值是:torrent


那你现在在前面加个“.”不就行了么~~~~

[此贴子已经被作者于2007-10-5 23:36:07编辑过]

1