上传是文件名相同的问题!(在线等~~)
当上传的时候,上传的文件的名字和upload文件夹的一个文件的名字一样的时候,它就会覆盖了这个文件,所以,要做一个检查,检查是否有相同文件名存在。
我用的是下面的代码:
if (File.Exists(Request.PhysicalApplicationPath+"/UpLoad/"+UpFileName))
{
//如果存在提示
Response.Write("<script>alert('文件存在,请改名字');</script>");
}
else
{//上传的相关功能。
}
但是,当我上传了一个相同文件的时候,它还是将原来的文件覆盖了,而没有执行对话框“文件存在,请改名字”,请问,我的代码是否有错,如果有错应该怎么改呢?
问题点数:20、回复次数:11Top
1 楼chenyuming2004(这辈子我算是废了)回复于 2005-04-03 07:47:43 得分 9
Response.Write("<script>alert('文件存在,请改名字');</script>");
后面加一句
return之类的语句,结束程序流程。Top
2 楼hackate(兰花开香入梦境,独思佳人亦飘然!!)回复于 2005-04-03 08:12:15 得分 0
似乎不太可能,因为你必须把文件上传后才能够检查,那等于没用啊,如果要在客户端的话,你也必须要先清楚文件夹下的文件情况,我觉得有难度Top
3 楼Jefflove(白马)回复于 2005-04-03 09:31:21 得分 0
最好的避免方法是根据日期建立多级目录Top
4 楼cuike519(I will be back!)回复于 2005-04-03 09:53:26 得分 9
Response.Write("<script>alert('文件存在,请改名字');</script>");
Response.End();==> try to add this.
你可以使用GUID或者Jefflove(白马)说的,实际的文件名称保存在数据库中,在下载的时候写到filename域(适合Response.Writer流的方法)中就可以了。
Top
5 楼hanbb1982(粤饶字号@0768)回复于 2005-04-03 10:42:14 得分 0
恩,我的意思是说,它好象没有执行那句判断语句。
问题应该是出在判断语句里面Top
6 楼hanbb1982(粤饶字号@0768)回复于 2005-04-03 10:44:03 得分 0
似乎不太可能,因为你必须把文件上传后才能够检查,那等于没用啊,如果要在客户端的话,你也必须要先清楚文件夹下的文件情况,我觉得有难度
这样也好象不可能吧,因为你一上传保存到文件夹里面以后,它已经把原有的文件覆盖了,那还有必要检查吗?Top
7 楼dTianx(铁锈)回复于 2005-04-03 11:04:54 得分 2
应该使用 Server.MapPathTop
8 楼chenyun_424(求教的人)回复于 2005-04-03 11:58:18 得分 0
upTop
9 楼hanbb1982(粤饶字号@0768)回复于 2005-04-03 12:27:44 得分 0
改成了,Server.MapPath都是不可以啊....
help!Top
10 楼apcsherry(无敌神勇小超人)回复于 2005-04-03 15:24:06 得分 0
奶奶地,这么简单的问题,我说了记得加分啊,说的不对,减份啊,你的文件名肯定是存在数据库的,要是你不存文件名到数据库那就别往下看了,一般我们都是把文件名存到数据库的,你在上传的时候先去数据库里扫描一下看有没有同名的,有则给出提示不执行upload,没有就download很简单的,算了,再说下文件名不存数据库的吧,可以利用fso方法,再配合枚举方法到具体文件夹里检查,有的话给个标记flag,如果flag为真(存在相同的文件名),那不做以下操作,否则执行~Top
11 楼hanbb1982(粤饶字号@0768)回复于 2005-04-03 16:18:21 得分 0
就你这样的口气,就算你说对了,人家不会给你分拉。Top




