100求文件改名的问题!!!!!请麻烦各位再看看!!

jueduiweiyi 2003-10-11 12:15:32
*****************************************************
原帖:
我用的是稻乡老农的上传组件,
我要在文件上传的时候,同时给文件改名字
所有名字都遵循一个规律,这样就不会出现因为上传了与存放文件的文件夹中相同名字的文件而把原来文件替代的问题。
这个规律就是,我不管别人上传什么样的文件名的文件,我都在其前面加
上一个字符串,"dah(i)"&file.filename,那个i是自动增加的,每次加1
假设上传的第一个文件的名字为"检测报告",我给它修改后就是"dah1检测报告"
第二个就是"dah2....."
我现在取得上传文件的原文件名,但是怎么样按我的规律来给它改名字。
*******************************************************
首先感谢avonqin(李文)和孟子E章不厌其烦的帮我解答,虽说问题还没得到最终解决.

我现在把问题重新说一次,我是要给上传的文件真正意思上的改名字,我用了各位提供的解决方法,发现都只是修改了传到数据库里的名字,保存所有文件的文件夹里的那个文件,它的名字依然没有被修改,而且假设分两次上传相同文件名的文件,前者就会被后者替代.(保存所有文件的文件夹里)
我现在想实现的是,我上传一个文件,不管其名字是不是存在(在保存所有文件的文件夹里),我都给它改名字规律就是我上面的说的,
各位,问题解决了,高分相送!!!
...全文
20 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
avonqin 2003-10-11
  • 打赏
  • 举报
回复
Dim fileName
fileName = ReturnFileName("xxx.doc")

Function ReturnFileName(s)
Dim fso,i
i=0
Set fso = CreateObject("Scripting.FileSystemObject")
while fso.FileExists(s)
s=i & s
wend
ReturnFileName = s
End Function
改为:
Dim fileName
fileName = year(date)&month(date)&day(date)&hour(now)&minute(now)&second(now)&"xxx.doc"
就OK啦,根本不用检测,多此一举!
jueduiweiyi 2003-10-11
  • 打赏
  • 举报
回复
感谢感谢各位!!结帐,只怪小弟太菜,太不细心了
sinusoid 2003-10-11
  • 打赏
  • 举报
回复
<!--#include file="upload_5xSoft.asp"-->
dim upload,picfile
set upload=new upload_5xSoft '建立上传对象
set picfile=upload.file("file") '上传图片

if picfile.FileSize>102400 Then '限制文件大小 100K之内
errmsg=errmsg&"文件大小不能超过100K"
End If


if picfile.FileSize>0 then ''如果 FileSize > 0 说明有文件数据
'更新相册表
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open "photo",conn,1,3
rs.addnew
rs("name")=upload.form("name") '上传的用户
rs("photoname")=picfile.filename '上传的时文件名
rs("shuoming")=upload.form("shuoming") '上传图片的说明

filenameend=picfile.filename
filenameend=split(filenameend,".")
ext=ucase(filenameend(ubound(filenameend))) '取扩展名
if ext="GIF" or ext="JPG" or ext="JPEG" then
randomize
filename=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&"_"&int(rnd*1000)&"."
filename=filename&ext '产生随机文件名,格式为:当前系统的时间+(0~1000)的随机数
savedfile="uppic/"&filename '新产生的随机不重复文件名
rs("photo")=savedfile '路径存数据库
picfile.saveAs Server.mappath(savedfile) '==>这句就是以新文件名,存于uppic/目录下
else
response.write "文件格式不对"
end if
set picfile=nothing
rs.update
rs.close
set rs=nothing
set upload=nothing
end if
%>

'这是上传图片的.原理和你上传别的文件一样,只要把允许上传的扩展名在程序中做修改.另外最好不要允许asp的文件上传,不安全.
luok 2003-10-11
  • 打赏
  • 举报
回复
1 ACCESS数据库里用自动编号字段,传一个文件,增加一条记录。 然后取出该字段,
fileName = rs("id") + fileName 这样就行了。 这样做效率不太好,要用到数据库。



2 用楼上的方法。
rnd_Num= 得到加密的8位字符串()
fileName = year(date)&month(date)&day(date)&hour(now)&minute(now)&second(now) + rnd_Num+ fileName

这样不用数据库,而且,将上传文件名加密,别人不能直接从地址栏下载。而且,用FSO很方便的取出原始文件名,合法用户通过downLoad.asp?下载,可以将它保存为原来的文件名

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧