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 作者:天空诚
猜你喜欢
- 利用FSO取得BMP,JPG,PNG,GIF文件信息:大小,宽、高尺寸等 ’:::::::::::::::::::::::::::
- 字符函数——返回字符值这些函数全都接收的是字符族类型的参数(CHR除外)并且返回字符值.除了特别说明的之外,这些函数大部分返回VARCHAR
- 话说土匪老湿在他的大作 《交互设计之回归篇》 里曝光了上次有意思小组竞赛我们小组分享的话题 “瞬间的快感”,但这一极具噱
- < SCRIPT LANGUAGE="VBScript"> < 
- 今天彬Go要向大家推荐9款很棒的可在网页中绘制图表的JavaScript脚本,这些有趣的JS脚本可以帮助你快速方便的绘制图表(线、面、饼、条
- 你是一位交互设计师吗?告诉我,你具体做些什么?我是做网站设计的?听起来不够专业。我是做网页设计的,听起来……你们是做界面的……恩,好吧,我勉
- google前不久推出了Google Ajax Library API,说白了就是提供几个知名js库的host,目前有:jQueryprot
- 阅读上一篇:你是真正的用户体验设计者吗? Ⅱ系统和用户环境设计苹果系统成功在于系统架构。简化系统本身,设备只能变得更好、更小、性能更强大。在
- 相信大家对街边林林总总的房产中介并不陌生,那么我们先看看下面这张图片。图1从右侧这家店的橱窗里,我们能迅速分清哪些是租房信息哪些是售房信息。
- 今天来讲一下一些实现html中表格隔行换色的方法,即每隔一个行表格的背景色就不同,有静态html/css实现的,也有asp动态实现的。这个功
- Oracle不像SQLServer那样在存储过程中用Select就可以返回结果集,而是通过Out型的参数进行结果集返回的。实际上是利用REF
- 以下函数采用FSO对象,文件位置在FSO.ASP。FSO对象的文件编码属性只有三种,系统默认,Unicode,ASCII,并没有我们要的ut
- 在浏览器 IE6 、IE7、Firefox2+、Firefpx3+、Opera9.6+、Safari3.1+中测试以下代码:<!DOC
- 文字链接可以说是网页中最常见的页面元素了,默认的文字链接样式都是带下划线的效果,这种一陈不变的外观可能使很多朋友都想改变它,以使之符合页面的
- 微软现在已经进入了ASP.NET 2.0和Visual Web Developer 2005发布版最
- 如何在SQL中启用全文检索功能?本文将通过实例向你剖折这个问题。这是一个全文索引的一个例子,首先在查询分析器中使用:use pubsgo--
- 我们在设计网站的时候,有的时候需要根据页面元素的属性来制作不同的样式,比如,对于不同的链接类型,显示不同的链接图标。CSS的选择器是个很有用
- 问题:如何在报表中每隔N行显示一条粗线如何为报表增加一个行号列?回答:1、在设计模式里打开该报表,在报表主体里面加一个TextBox,把Na
- ASP(Active Server Page)是Microsoft公司推出的基于PWS(Personal We
- 页面中header部分一般位于最上端(有时根据需要也会位于某一侧,不管它在页面中的位置如何,在XHTML代码中它总是优于其它元素先加载),内