if(File.Exists(Server.MapPath(fn)))
{
Label1.Text="文件名已经存在。";
 }
fn为上传路径及文件名!

解决方案 »

  1. 楼上说的对。可以考虑使用
    file.Exists方法来取的你的文件存在与否然后进行你的操作
    if(File.Exists(Server.MapPath(fn)))
    {
    Label1.Text="文件名已经存在。";
     }
    else
    {
     //改名后在保存
    }
      

  2. 我的做法是统一将文件命名为上传时的时间
    当然,要是再保险一点的话,还可以在后面再加上原来的文件名,这样出现
    重名的几率就很小了if(file.PostedFile!=null)
    {
    String =""+DateTime.Now.Year+DateTime.Now.Month+DateTime.Now.Day+DateTime.Now.Hour+DateTime.Now.Minute+DateTime.Now.Second+(new FileInfo(file.PostedFile.FileName)).Extension;
    file.PostedFile.SaveAs(Server.MapPath("/")+"upload\\"+s);
    info.Text="文件已经成功上传,您可以使用<b>\"http://"+Request.ServerVariables["SERVER_NAME"]+"/upload/"+s+"\"</b>来引用。";
    }
      


  3. 可以考虑在指定的目录内传资料
    string lstrfilename,lstrfilepath,lstrfilefolder;
        lstrfilefolder="e:\\http\\upload\\";
        lstrfilename=UploadFile.PostedFile.FileName;
        lstrfilename=Path.GetFileName(lstrfilename);    UploadFile.PostedFile.SaveAs(lstrfilefolder+lstrfilename);
      

类似问题 »