求助!简单又不简单的问题!
我在做上传的时候遇到一个问题!
假如用户上传的文件已经存在,则提示“文件已经存在,是否覆盖?”
如果用户选择“是”,则把文件覆盖,并且把这个上传记录写进数据库,“否”则取消,不进行数据库操作!!
如果这么写:
if myfile.fileexists(server.MapPath(formpath&file.filename)) then
response.write "<script language=vbscript>" & vbcrlf
response.write "if msgbox(""您要上传的文件已经存在,是否覆盖"",vbyesno,""覆盖确认!"")=7 then" & vbcrlf
response.write "location.href=""tmp.asp?flag=1""" & vbcrlf
'tmp.asp只有一句话,“上传已取消!”
response.write "end if</script>"
file.saveas server.MapPath(formpath&file.filename)
‘下面是数据库操作
…………………………………………………………
这种写法跟直接写<script language="vbs">………………</script>是一样的~
粗看上去没问题,实际当用户选择“否”时,它依然把文件覆盖,并进行了数据库操作,
原因是asp 先编译了!
假如把脚本写进另一个页面,在本页用server.execute去执行那个脚本,我想返回个值,可是又不能用reqquest获取(error:调用 BinaryRead 后不能使用一般 Request 收集)
用session("flag")="ok/flase"来传吧,在脚本里直接写<%session("flag")="ok/flase"%>又不行,其他我就不会写了。
用asp函数写可以方便的使用session,可是又不知道用户选择“是”还是“否”
如果让文件保存和数据库操作都在另一个页面也不可行,因为执行上传操作的页面,它的前一个页面一定要包含[enctype="multipart/form-data"],
如果写在server.execute的那个页面里好象也不行,
好象还尝试过很多,但都失败了,
现在我好象有点无计可施了,所以请大家帮忙啊,怎么实现这个东东
先谢谢了!