我用FileUplod控件实现一个文件上传的页面,当文件大于4M时,我想弹出一个"上传文件不能大于4M的提示框",怎么实现呢?如果是需要修改webconfig配置文件和更改浏览器设置的实现就请不要发了,谢谢

解决方案 »

  1.   

    1:默认只能上传4096KB(即4M)大小的文件,改变大小需要修改Web.config
     修改如下:在<system.web></system.web>中添加:  
    <httpRuntime maxRequestLength="51200" executionTimeout="600"/>
    2:程序中就直接用 
       Request.Files[0].ContentLength  //0是代表第一个要上传的文件,是个索引 
       或FileUpload1.PostedFile.ContentLength得到大小 
      在判断就行~~
      

  2.   

                        if (FileUpload1.PostedFile.ContentLength > 1024 * 1024)
                        {
                            return "Erro:上传图片文件大于1M!";
                        }具体的上传代码:http://www.dysdn.cn/news-115.aspx
      

  3.   

    MSDN里有代码示例,估计你也没仔细看
      

  4.   

    请大家看清楚问题,“如果是需要修改webconfig配置文件和更改浏览器设置的实现就请不要发了,谢谢”,大于4M就报错了,根本获取不到文件大小
      

  5.   

    to rancong
    不信可以试试
      

  6.   

    int abc = 4096;//单位为KB
    if(upFile.PostedFile.ContentLength/1024 < abc)
    {
    //执行的代码 }
    else
    {
    string js=@"<script language=javascript>alert('失败!上传的文件大于规定的4M!')</"; 
    js+="script>"; 
    Page.RegisterStartupScript("kkq99",js);
    }
      

  7.   

    to zcxverygood123456
    默认只能上传4096KB(即4M)大小的文件,改变大小需要修改Web.config 。大于4M时根本到不了页面代码就报错了,但我需要不修改webconfig配置文件和更改浏览器设置的实现
      

  8.   

     if (FileUpload1.PostedFile.ContentLength > 1024 * 1024) 
                        { 
                            return "Erro:上传图片文件大于1M!"; 
                        } 
      

  9.   

    不在webconfig中改,那就用楼上的方法呗。
      

  10.   

    哎,测试通过
       <script>
    function ss()
    {
        var obj = document.getElementById("File1");
       if(obj.value=="")
       {
          alert("请选择一个文件");
           return false; 
          }
        else
        {
             var fso = new ActiveXObject("Scripting.FileSystemObject");
             var file = fso.GetFile(obj.value);
            if(file.Size>1024*1024*4)
            {
                alert("上传文件必须小于4M");
                return false;
             }
             else
                return true;
         }
    }
       </script> 
    </head>
    <body>
        <form id="form1" runat="server">
            <input id="File1" type="file" />
            <asp:Button   ID="Button2" runat="server" Text="上传"  OnClientClick="return ss();"/>
        </form>
        
    </body>
    </html>
      

  11.   

    至于button的后台代码,你应该会写,我就省略了。
      

  12.   


    个人感觉是比较好的解决方案如果直接上传文件,通过服务器来判断,
    会有一个延时等待的问题,易用性不好,也给服务器造成了负担在客户端用ActiveX来分析文件,速度快,也不浪费资源,前提是是得安装了此控件而其这也是断点续传大文件的一种方案!
      

  13.   

     <httpRuntime  
     executionTimeout="3600"  
    maxRequestLength="1048576"/>  
    int fileLength = this.FileUpload1.PostedFile.ContentLength;
    function      getFileSize(fileName)      
     {             
       var   fso=new   ActiveXObject('Scripting.FileSystemObject');         
      var    file =fso.GetFile(fileName);                         
      return  file.Size; 
    }       
      </SCRIPT>         
      

  14.   

    17楼的需要改浏览器设置,不是一个很好的方案,如果改webconfig的设置,上传文件大于你设的最大值还是会报错
      

  15.   

    当我们上传后鼠标离开的时候就判断文件的大小,用一个JavaScript试试
      

  16.   


    我可以告诉你了,这个问题找wuyq111吧,看看他怎么说。估计他除了上面的回复外,会给你webservice或者ftp之类的回复