我有多个file上传图片,我在web.config。配置的最大上传图片是6M。     因为我是在后台判断图片的的大小     现在用户上传7M,我单步调试。ajax没把图片发送到后台。     所有就不会提示图片过大,如果直接点注册就会报错。     我想当用户上传超过我配置的最大图片时候。就提示个友好的界面。     怎么弄哦。大家给点建议和思路。     我这里是多个file。不只是一个。
     
     系统默认是累加计算图片大小的。总和过大也不会提示。

解决方案 »

  1.   


    是啊。我是在后台判断文件大小的。                HttpPostedFile fil = Request.Files["fileSrc"];
                    int bytes = fil.ContentLength; //获取文件的字节大小 
                    if (bytes > 1024 * 1024 * 4)
                    {
                        Response.Write("no");//图片不能大于4M  
                        //Response.End();
                    }
    我web.config配置的最大是6M,可当上传图片超过6M。图片就不发送到后台。我就判断不了呢。怎么解决呢。这样没判断。用户就不知道这图片是否可以上传。点击注册的时候就报错。说超过了最大长度。我试了的。我想如果图片超过我web.config配置的大小怎么提示错误。或者友好的提示界面。
      

  2.   


             HttpPostedFile fil = Request.Files["fileSrc"];
                    int bytes = fil.ContentLength; //获取文件的字节大小 
                    if (bytes > 1024 * 1024 * 6)
                    {
                        Response.Write("<script language='javascript'>alert('上传的图片超过限定的大小,请保证图片文件6M以内,请重新上传!');</script>");//图片不能大于6M  
                        //Response.End();
                    }
      

  3.   


    可当用户上传大于6M的图片(我web.config配置的最大是6M)。我这ajax都不发送呢? $("#form1").ajaxSubmit({
            success: function (data, status) {
                if (status == "success") {
                    if (data == "no") {
                        alert("不能上传大于4M的图片");
                        file.parent().html("<input type='file' name='file'/>");
                        return;
                    }
                    msg(file, "ok");
                }
            }
        });就没到后台去。就更不可能执行你说的那句代码哦。现在的问题的。当上传的图片一张或者几张总共大小。超过了web.config的大小。ajax提交表单就提交不过
      

  4.   

    配置web.config:
    <configuration>
        <system.web>       
            <httpRuntime maxRequestLength="102400" useFullyQualifiedRedirectUrl="true" minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="100" enableVersionHeader="true"/>
        </system.web>
    IIS 的maxAllowedContent Length的缺省值为30000000 bytes.  上传大于这个长度的数据流被截断,导致文件或目录找不到。
    <system.webServer>    
        <security>
          <requestFiltering>
            <requestLimits maxAllowedContentLength="2097152000" maxQueryString="5000" maxUrl="8000"></requestLimits>
          </requestFiltering>
        </security>
      </system.webServer>
      

  5.   


    不在 webconfig 里面限制大小
      

  6.   

    建议可以用一起其他的上传的控件,都是很不错的,不用优先考虑原生态的input type=’file‘
      

  7.   

    <httpRuntime maxRequestLength="6144" 
        useFullyQualifiedRedirectUrl="true"
        executionTimeout="6000"
        minFreeThreads="8"
        minLocalRequestFreeThreads="4"
        appRequestQueueLimit="100"
        enableVersionHeader="true"
        />嗯。我这里也是这样配的。还是会报错呢。 你看图。这是我的上传如果大于就提示现在上传的图片以为大大超过了我配置的长度。没有任何提示。下图:然后我点击注册。看图:
      

  8.   


    嗯咯。之前我用过SWFUpload上传,但现在用的是这个。很想知道这个问题能不能解决
      

  9.   


    if (bytes >1024 * 4)//这里你改成6了吗?1024*6
                    {
                        Response.Write("no");//图片不能大于4M  
                        //Response.End();
                    }
      

  10.   

    晕 ,你把web。config 中的限制改成8m ,程序里面的大小限制不变 不就ok了 再说了 ,你web。config 限制成6m ,你也传不了6m的文件呀, 你还有其他信息需要发给服务端呀,比如cookie ,userAgent 等。
    或者你在客户端处理,js 得不到文件大小 ,你又不愿意用flash ,插件跟不可能,
    用ajax发给服务端,服务端没响应就算是文件超大了 (没实践)
      

  11.   

    web.config 中的大小限制 是用来防止攻击的,不是作为上传文件大小限制的配置项的
      

  12.   

    http://stackoverflow.com/questions/1046230/streaming-large-file-uploads-to-asp-net-mvc
      

  13.   

    我现在的难题是。当我上传的文件大于配置里面的大小时,ajax提交表单提交不到请求的页面。这样我怎么能提示用户、
      

  14.   

    http://bbs.csdn.net/topics/380249577 完美解答了你的问题
      

  15.   

    Refer:
    http://www.cnblogs.com/insus/archive/2012/08/09/2629920.html