网络编程
位置:首页>> 网络编程>> Asp编程>> asp上传文件自动重命名方法

asp上传文件自动重命名方法

 来源:asp之家 发布时间:2007-08-24 09:46:00 

标签:上传,重命名

内容摘要:最近逛论坛经常看到有朋友问上传文件怎么重命名,怎么以当前日期来重命名上传文件。现在我就介绍一下重命名的方法,希望对大家有所帮助。

本文这里不讨论上传文件的方法,如果大家感兴趣可以搜索一下:无组件上传。

首先获取文件的扩展名:因为文件名都是以*.*的格式表示的,我们只要获取最后一个.之后的字符串,这个字符串就是文件的扩展名了。而普通网站上允许的上传文件一般都是图片jpg,png,gif,bmp,压缩文件rar,zip,flash文件:swf,flv。文档文件:doc,txt,pdf等。他们的扩展名一般都只有3个字符。所以我们一般就检测最后3个字符就可以了:


filename=上传文件名
fileext=lcase(right(ffilename,3)) 


先用right()函数来获取文件名的右3个字符,由于上传的文件名可能大写,也可能小写,所以我们要考虑这种情况。这里用了lcase函数来把文件名转换为小写。当然如果你想转换为大写可以使用Ucase。fileext就保存了上传文件的扩展名。

获取了文件的扩展名了,接下来你可以对文件类型进行判断了,过滤掉非法文件名。


allext="jpg,png,gif,rar,doc,bmp"



把允许上传的文件名保存到allext。接下来使用instr函数来判断上传的文件是否合法。

if instr(allext,fileExt)=0  then
response.write "只能上传"&allext&"格式的图片!  <a href=‘http://www.aspxhome.com’>返回首页</a> "
response.end
end if


instr的用法如果你不是很了解,建议您下载一个vbscript参考手册


下面来重命名上传文件名,重命名的方法很多,有的使用日期+时间,有的使用文件名+时间,有的使用随机数+文件名。当然各有好处。这里介绍以日期来重命名文件的方法:


datestr=Now() 


获取当前服务器时间,形如:2007-8-24 10:11:58
我们要把它变成:2007824101158这样的。当然我们就要想办法去掉多余的符号了,这里可以使用replace来替换掉我们不要的符号:


datestr=replace(datestr," ", "") ’去掉空格
datestr=replace(datestr,"-", "")’去掉-
datestr=replace(datestr,":", "")’去掉:


这样datestr的值就是2007824101158了,但是为了不让文件名重复,这样还不够,你不能保证在这一秒钟没有人在上传文件,所以我们还要加个随机的字符串,呵呵安全第一。

产生随机字符串的方法很多,可以看这里8个asp生成随机字符的函数 ,这里只要最简单的随机数字就可以了:

randomize
ranNum=int(90*rnd)+10


ranNum就保存了一个随机的数字了,这里的参数你可以随便设置,当然不要设置太小。
下面和datestr合并:

datestr=datestr&ranNum 


在加上文件的扩展名就可以了

datestr=datestr&"."&fileext


这样datestr就包含了当前时间+随机数字+文件名了。接下来是上传的其它操作了...



转载请注明出处:asp之家 http://www.aspxhome.com 作者:天空诚

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com