| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 416 人关注过本帖
标题:求助:上传程序如何保证上传后的文件名为原文件名
只看楼主 加入收藏
china88985
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-6-19
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
求助:上传程序如何保证上传后的文件名为原文件名
在网上下载了一无组件上传程序,其中upload.asp中上传后的文件名变成了年月日命名,但我想要的是原文件名,如"我的画.bmp",上传后的文件名仍是"我的画.bmp",如何修改这个代码,谢谢.
附程序代码:
upload.asp
<%
dim contentlen
contentlen=request.totalbytes
if contentlen>10240000 then
  response.write "文件太大,超过10M,不允许上传。请返回"
else
dim content
content=request.binaryread(request.totalbytes)
'二进制相互转换
Function getByteString(StringStr)
  For i=1 to Len(StringStr)
    char=Mid(StringStr,i,1)
   getByteString=getByteString&chrB(AscB(char))
  Next
End Function
Function getString(StringBin)
        getString =""
        For intCount = 1 to LenB(StringBin)
         getString = getString & chr(AscB(MidB(StringBin,intCount,1)))
        Next
    End Function
dim upbeg,upend,lineone,linetwo,linethree,line1,line2,line3
upbeg=1
upend=instrb(upbeg,content,getbytestring(chr(10)))
lineone=midb(content,upbeg,upend-upbeg)
upbeg=upend+1
line1=lenb(lineone)
upend=instrb(upbeg,content,getbytestring(chr(10)))
linetwo=midb(content,upbeg,upend-upbeg)
upbeg=upend+1
line2=lenb(linetwo)
upend=instrb(upbeg,content,getbytestring(chr(13)))
linethree=midb(content,upbeg,upend-upbeg)
line3=lenb(linethree)
 
'获得文件名
dim pp,checknametemp,checklen,checkname,filename
pp=instrb(1,linetwo,getbytestring(chr(46)))
checknametemp=rightb(linetwo,line2-pp+1)
checklen=instrb(1,checknametemp,getbytestring(chr(34)))
checkname=getstring(leftb(checknametemp,checklen-1))
filename=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&checkname
 
'上传文件
dim alllen,upstream,upstreamend,file
alllen=line1+line2+line3+6
set upstream=server.createobject("adodb.stream")
set upstreamend=server.createobject("adodb.stream")
upstream.type=1
upstreamend.type=1
upstream.open
upstreamend.open
upstream.write content
upstream.position=alllen
file=upstream.read(clng(contentlen-alllen-line1-5))
upstreamend.write file
upstreamend.savetofile(server.mappath("../lbbs_pic/"&filename))'此处pic改成指定目录下文件夹
upstream.close
upstreamend.close
set upstream=nothing
set upstreamend=nothing
response.write("图片已上传")
end if
%>
搜索更多相关主题的帖子: 二进制 年月日 
2012-06-19 10:50
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:10 
年月日命名文件名是安全的做法,这样命名可以防止黑客上传木马后远程启动,因为黑客上传了木马后就不知道木马的文件名了,不知道文件名就不能远程启动木马了
2012-06-20 10:20
aspic
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:51
帖 子:2258
专家分:8050
注 册:2008-2-18
收藏
得分:10 
还可以防止同样文件名 然后被错误的覆盖
2012-06-22 12:55
快速回复:求助:上传程序如何保证上传后的文件名为原文件名
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.092120 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved