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
投稿

猜你喜欢

  • 做网站要习惯化与去习惯化

    2008-06-18 13:36:00
  • 针对SQL Server中业务规则链接的分析

    2009-01-20 11:43:00
  • 成为一个顶级设计师的第二准则

    2008-04-01 09:41:00
  • 一个向上滚动代码

    2010-02-10 12:29:00
  • 利用ADODB.Stream使用浏览器下载服务器文件

    2008-10-09 12:42:00
  • 弹性+固宽布局

    2009-05-15 12:19:00
  • 快速掌握如何使用SQL Server来过滤数据

    2009-01-15 13:27:00
  • oracle dba 应该熟悉的命令

    2009-07-02 12:08:00
  • DreamWeaver操作超级技巧大全

    2008-10-03 20:50:00
  • Oracle数据库安全策略分析(一)

    2010-07-31 12:57:00
  • CSS执行顺序与优先权的问题

    2010-08-23 16:21:00
  • 理解和使用Oracle 8i分析工具LogMiner

    2010-07-16 13:22:00
  • 品牌的统一体验

    2010-05-19 13:08:00
  • JavaScript学习心得之如何走出初学困境

    2008-12-24 13:30:00
  • MySQL 集群配置

    2009-04-20 14:15:00
  • 网页设计技巧:相对路径与绝对路径的区别问题

    2008-03-04 10:12:00
  • sqlserver 快速生成汉字的首拼字母的函数(经典)

    2012-06-06 20:16:41
  • ASP trim,ltrim,rtrim 去前后空格 函数

    2011-03-03 10:39:00
  • 关于分页查询和性能问题

    2008-03-11 12:25:00
  • FrontPage XP设计教程1——站点初建与管理

    2008-10-11 12:13:00
  • asp之家 网络编程 m.aspxhome.com