查看: 413|回复: 7

[问与答] 一个类似windows系统的功能

[复制链接]
小样样 发表于 2020-1-7 08:56:36 来自手机 | 显示全部楼层 |阅读模式
上传一个文件到服务器,提示该文件已存在(因为文件名相同) ,是否覆盖?点击是,覆盖,点击否,不覆盖。我现在已经有上传的ASP代码了,也能够上传,怎么实现弹出对话框,通过点击是或者否执行不同的代码?弹出对话框只能是JavaScript,怎么和ASP结合呢?
ttasp 发表于 2020-1-7 14:38:04 | 显示全部楼层
可以实现的 你把代码打包看看
 楼主| 小样样 发表于 2020-1-7 15:20:56 来自手机 | 显示全部楼层
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>文件上传</title> </head>   <body>     <form method="post" action="upload.asp" enctype="multipart/form-data"><!--一定要有enctype="multipart/form-data",表示这个表单是传递二进制数据的,同时不能再传一些text,password这些无关的文件域上去了。-->         <input type="file" name="file"/><!--这里的file文件域,就是一定要有name属性,虽然在之后的二进制处理根本没有用到这个name,你随便给个名称都行,但就是要有-->         <input type="submit" value="提交" />     </form> </body> </html>
 楼主| 小样样 发表于 2020-1-7 15:21:48 来自手机 | 显示全部楼层
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <% '禁止缓存' Response.CacheControl="no-cache"   Response.Expires=-1 Response.Charset="UTF-8"    '配合第一行设定网页编码   if Request.TotalBytes then        '如果上传文件非空'         set read_stream=createobject("adodb.stream")        '设置一个流'         read_stream.Type=1        '这个流读二进制数据,如果Type=2则读文本数据'         read_stream.Open        '打开流'         read_stream.write Request.BinaryRead(Request.TotalBytes)        '将表单传过来的二进制数据写入流read_stream'         '将流read_stream的所有数据读到binary_stream中,binary_stream相当于一个临时变量,接下来将对binary_stream进行切割,以免污染read_stream中的原数据'         read_stream.Position=0         binary_stream=read_stream.Read           enter=chrB(13)&chrB(10)        '二进制流中的回车'         first_enter=clng(instrb(binary_stream,enter))        '寻找第一个回车的位置'         second_enter=instrb(first_enter+1,binary_stream,enter)        '寻找第二个回车的位置'           set write_stream=createobject("adodb.stream")        '定义一个流write_stream'         write_stream.type=1        'write_stream是处理二进制数据的'         write_stream.open         '将read_stream中文件信息部分写到write_stream'         read_stream.Position=first_enter+1         read_stream.copyto write_stream,second_enter-first_enter-3                  write_stream.Position=0         write_stream.type=2        '再将write_stream转为文本流'         write_stream.CharSet="UTF-8"         file_info=write_stream.readtext        '写到file_info这个字符串'         write_stream.Close        '暂且关闭write_stream这个流,接下来对file_info这个字符串进行切割'           file_name=mid(file_info,instrRev(file_info,"\")+1)        '取得全文件名'         file_pre_suffix=left(file_name,instrRev(file_name,".")-1)        '取得文件前缀'         suffix=mid(file_name,instrRev(file_name,"."))        '取得文件后缀,带.的'             server_file_name=file_pre_suffix&"_"&datediff("s","1970-01-01 00:00:00",now)&suffix        '在服务器保存的文件名就是“原文件前缀_时间戳.原文件后缀名”'                  delimiter=leftB(binary_stream,clng(instrb(binary_stream,enter))-1)        '取得-----------------7e010b37206c4这个文件分隔符,用于给字符串处理函数找到文件内容'         third_enter=instrb(second_enter+1,binary_stream,enter)        '找第三个回车的位置'         file_begin_position=clng(instrb(third_enter+1,binary_stream,enter))+1        '获取文件内容第一个字符之前的位置'         file_end_position=clng(instrb(lenb(delimiter),binary_stream,delimiter))-3  '获取文件内容中最后一个字符的位置,就是第二个分隔符"delimiter"开始的前一个二进制字符'           write_stream.type=1        'write_stream是处理二进制数据'         write_stream.open         read_stream.Position=file_begin_position        '将流read_stream的开始位置移到文件开始的位置'         read_stream.copyto write_stream,file_end_position-file_begin_position        '把流read_stream的开始位置之后 长为 文件长度 的内容复制到write_stream,其中文件长度就是文件结束的位置file_end_position-文件开始的位置file_begin_position'         write_stream.SaveToFile server.mappath("upload_file/"&server_file_name),2        '将write_stream转化为文件,保存在设定好的文件目录'           '人走带门,关闭所有用到的流'                 write_stream.Close         Set write_stream=nothing         read_stream.Close         Set read_stream=nothing           '打印文件信息到网页'         response.write "你上传的文件是:"&file_name&"<br>"         response.write "你上传文件的后缀为:"&suffix&"<br>"         url="http://"&Request.ServerVariables("HTTP_HOST")&"/my_asp/upload/upload_file/"&server_file_name         response.write "访问地址:<a href='"&url&"' target='_blank'>"&url&"</a><br>"         response.write "<a href='upload.html'>返回</a><br>"      end if %>
 楼主| 小样样 发表于 2020-1-7 15:22:18 来自手机 | 显示全部楼层
第一个是提交表单,第二个是处理代码
ttasp 发表于 2020-1-8 01:25:09 来自手机 | 显示全部楼层
打包就行了 没必要贴这么多代码
 楼主| 小样样 发表于 2020-1-8 17:30:40 来自手机 | 显示全部楼层
大哥,可以指导一下么
ttasp 发表于 2020-1-8 18:43:02 | 显示全部楼层
小样样 发表于 2020-1-8 17:30
大哥,可以指导一下么

文件压缩包发上来,别贴代码。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表

在线客服

售前咨询
售后咨询
服务热线
023-58418553
微信公众号