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 作者:天空诚


猜你喜欢
- 边缘在人类视觉和计算机视觉中均起着重要的作用。人类能够仅凭一张背景剪影或一个草图就识别出物体类型和姿态。其中OpenCV提供了许多边缘检测滤
- 译注:开发人员如何从无休止的需求、项目进度中摆脱烦躁的心态,这是每个人都值得思考的话题。无意间看见了这篇文章,恐于太长遂将其精简翻译,错误之
- 本讲的内容是使用ASP的ActiveX Server Components(组件),说实话下面的内置组件我们用的很少。一、 Browser
- 表达式的优先级表达式(Expression)是运算符(operator)和操作数(operand)所构成的序列代码段a = 1b = 2c
- 错误信息Attempting to use uninitialized value input_producer/input_produce
- ⭐️requests的使用(二)上一篇我们说了requests的简单用法,知道了如何发送请求,今天我们更深层次的来学习requests。我们
- 不敢说得太明显太仔细,反正你懂的。有两种方法,一种是搭建本地授权服务器,另一种是直接替换核心文件,修改对应的注册码。先说第一种。 下载Int
- Python中对象方法的定义很怪异,第一个参数一般都命名为self(相当于其它语言的this),用于传递对象本身,而在调用的时候则不必显式传
- Django教程Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Djan
- 这几天在用golang写一个工具,要执行外部命令工具,而且还要将外部命令工具输出的日志也要输出出来。网上找了一下,资料很多,关键是执行的结果
- 看代码吧~import pymongofrom dateutil import parserdateStr = "2019-05-
- 两组字符串数据,需要比较其中相同的数据,并将其值相加并组成一个新的字符串数据a1="sp2=20;sp1=34;"a2=
- nn.Module中定义参数:不需要加cuda,可以求导,反向传播class BiFPN(nn.Module): def __i
- INI是微软Windows操作系统中的文件扩展名。这些字母表示初始化。正如该术语所表示的,INI文件被用来对操作系统或特定程序初始化或进行参
- 本文实例讲述了python中dir函数用法。分享给大家供大家参考。具体分析如下:dir 函数返回任意对象的属性和方法列表,包括模块对象、函数
- 前言对于MySQL的理解,我认为很多性能优化工作、主从主主复制都是在调整参数,来适应不同时期不同数量级的数据。故,理解透彻my.cnf里的参
- 在 Python 中,* 和 ** 具有语法多义性,具体来说是有四类用法。1. 算数运算* 代表乘法** 代表乘方>>>
- 1.学习sql之前回忆一下,什么是变量?变量:能存储数据的值。变量是一块内存空间的表示。数组一连串空间变量是存储数据的容器(通俗讲)2.变量
- 问题: 将u'\u810f\u4e71'转换为'\u810f\u4e71'
- 程序出错的时候,我们往往需要根据异常信息来找到具体出错的代码。简单地用print打印异常信息并不能很好地追溯出错的代码:# -*- codi