一个aspx页面
放置一个HtmlInputFile控件,和一个butten控件
用HtmlInputFile选择文件,然后在butten的click服务器事件中调用HtmlInputFile.PostedFile.SaveAs方法上传文件为了确保文件确实存在,在aspx页面的<head></head>之间加了段javascript,如下
<script language="JavaScript">
function checkFileExist(fileName)
{
   var fso = new ActiveXObject("Scripting.FileSystemObject");
   if(fso.FileExists(fileName))
   {
      return true;
   }
   else
   {
      alert("文件不存在");
      return false;
   }
}
</script>然后在cs文件的Page_Load方法中为button控件的onClick事件绑定上面的方法
button1.Attributes.Add("onClick", "return checkFileExist(document.all." + Browser_File.ClientID + ".value);");
但是点击上传按钮的时候,即使文件不存在仍然可以上传一个空文件到服务器
也没出现“文件不存在”的提示!请教这是什么原因?谢谢

解决方案 »

  1.   

    直接用asp:button OnClientClick呢
    还有可能是权限不够,你试试win 2000的IE 5.01,如果可以的话,证明微软对FSO的权限进行了限制
      

  2.   

    button1.Attributes.Add("onClick", "<script>checkFileExist(document.all." + Browser_File.ClientID + ".value);</script>");
      

  3.   

    b/s的安全机制决定了只要是使用纯web技术,你都不能判断或者自动获取客户端的文件
      

  4.   

    to: fangzhe刚才试了一下,触发方法是没问题的
    另外我找不到IE5,所以没办法试了HtmlInputFile控件的地址框是可以编辑的,随便输入一个地址就可以用PostedFile.SaveAs上传至服务器,哪怕那个文件根本不存在
    其实我的目的就是为了解决这个问题请教如果是IE6调整了安全机制,那么应该如何处理呢?
    另外,有没有更好的办法呢?!谢谢
      

  5.   

    to birdnotcold(鸟儿别感冒) :有个办法,你判断一下PostedFile.SaveAs上传至服务器的文件是否为空文件,如果是空文件就证明这个文件不存在或者是无效文件,这样不就解决了问题了吗?
      

  6.   

    to: AdaLoveLacer(不羁的风)这样是可以的,谢谢!但是没办法阻止那个空文件传的服务器上,如果客户端脚本没办法做到,就只能用他了
      

  7.   

    在客户端用ActiveXObject("Scripting.FileSystemObject")
    但是不知道IE几支持
    我公司IE6支持
    家里的IE6不支持
    我晕倒
      

  8.   

    to: zhf777(八步) 是不是小版本号不一样??或者安全设置不同?
      

  9.   

    fso = new ActiveXObject("Scripting.FileSystemObject");
    if (fso.FileExists("文件路径"))
    {
        return true;
    }
             else
             {
                 return false;
             }//javascript
      

  10.   

    你可以判断一下上传文件的字节大小。
    ---------------------
    判断上传文件的字节大小也要先获取文件啊
    获取文件前先要用FileExists判断文件存在否
    如何支持FileSystemObject我查不到
    楼主试一下先吧
      

  11.   

    可以先在PostedFile 加上onkeypress=false
    这样就只能选择文件了,在提交时判断文件大小,再保存....
      

  12.   

    to:mangshuo
    请教PostedFile 的onkeypress是什么?MSDN没提到啊
      

  13.   

    using System.IO
    class a
    {
       string path="c:\\a.txt";
        private void aa(string path)
      {
         if(File.Exists(path))
         {
            return true;
         }else
            return false;
      }
    }
      

  14.   

    to:gicjoe
    用using System.IO?这是服务器端代码吧?这样判断的路径是否会是服务器端路径呢?