首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

input=file下传图片过大的有关问题

2012-12-25 
inputfile上传图片过大的问题我有多个file上传图片,我在web.config。配置的最大上传图片是6M。因为我是在后

input=file上传图片过大的问题
    我有多个file上传图片,我在web.config。配置的最大上传图片是6M。

     因为我是在后台判断图片的的大小

     现在用户上传7M,我单步调试。ajax没把图片发送到后台。

     所有就不会提示图片过大,如果直接点注册就会报错。

     我想当用户上传超过我配置的最大图片时候。就提示个友好的界面。

     怎么弄哦。大家给点建议和思路。

     我这里是多个file。不只是一个。
     
     系统默认是累加计算图片大小的。总和过大也不会提示。
[最优解释]
判断文件大小 超过限制就提示 
[其他解释]


         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();
                }


[其他解释]
配置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>
[其他解释]
引用:
引用:C# code?1234567         HttpPostedFile fil = Request.Files["fileSrc"];                int bytes = fil.ContentLength; //获取文件的字节大小                 if (bytes > 1024 * 1024……


不在 webconfig 里面限制大小
[其他解释]
建议可以用一起其他的上传的控件,都是很不错的,不用优先考虑原生态的input type=’file‘
[其他解释]
uploadify
------其他解决方案--------------------


引用:
引用:配置web.config:
<configuration>
    <system.web>       
        <httpRuntime maxRequestLength="102400" useFullyQualifiedRedirectUrl="true" minFreeThreads="8" minLoc……


if (bytes >1024 * 4)//这里你改成6了吗?1024*6
                {
                    Response.Write("no");//图片不能大于4M  
                    //Response.End();
                }
[其他解释]
晕 ,你把web。config 中的限制改成8m ,程序里面的大小限制不变 不就ok了 

再说了 ,你web。config 限制成6m ,你也传不了6m的文件呀, 你还有其他信息需要发给服务端呀,比如cookie ,userAgent 等。


或者你在客户端处理,js 得不到文件大小 ,你又不愿意用flash ,插件跟不可能,
用ajax发给服务端,服务端没响应就算是文件超大了 (没实践)

[其他解释]
http://stackoverflow.com/questions/1046230/streaming-large-file-uploads-to-asp-net-mvc
[其他解释]
http://bbs.csdn.net/topics/380249577 完美解答了你的问题
[其他解释]
Refer:
http://www.cnblogs.com/insus/archive/2012/08/09/2629920.html
[其他解释]
引用:
web.config 中的大小限制 是用来防止攻击的,不是作为上传文件大小限制的配置项的


不对吧???
[其他解释]
web.config 中的大小限制 是用来防止攻击的,不是作为上传文件大小限制的配置项的
[其他解释]
引用:
判断文件大小 超过限制就提示


是啊。我是在后台判断文件大小的。


                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配置的大小怎么提示错误。或者友好的提示界面。
[其他解释]
引用:
C# code?1234567         HttpPostedFile fil = Request.Files["fileSrc"];                int bytes = fil.ContentLength; //获取文件的字节大小                 if (bytes > 1024 * 1024 * 6)              ……



可当用户上传大于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提交表单就提交不过
[其他解释]
引用:
配置web.config:
<configuration>
    <system.web>       
        <httpRuntime maxRequestLength="102400" useFullyQualifiedRedirectUrl="true" minFreeThreads="8" minLocalRequestFreeThreads="……



<httpRuntime maxRequestLength="6144" 
    useFullyQualifiedRedirectUrl="true"
    executionTimeout="6000"
    minFreeThreads="8"
    minLocalRequestFreeThreads="4"
    appRequestQueueLimit="100"
    enableVersionHeader="true"
    />

嗯。我这里也是这样配的。还是会报错呢。 你看图。这是我的上传如果大于就提示



现在上传的图片以为大大超过了我配置的长度。没有任何提示。下图:



然后我点击注册。看图:


[其他解释]
引用:
引用:引用:C# code?1234567         HttpPostedFile fil = Request.Files["fileSrc"];                int bytes = fil.ContentLength; //获取文件的字节大小                ……

那怎么控制哦。给点思路好吗。不控制的话。默认是4M呢。如果上传大于4M一样的结果哦
[其他解释]
引用:
建议可以用一起其他的上传的控件,都是很不错的,不用优先考虑原生态的input type=’file‘


嗯咯。之前我用过SWFUpload上传,但现在用的是这个。很想知道这个问题能不能解决
[其他解释]
引用:
晕 ,你把web。config 中的限制改成8m ,程序里面的大小限制不变 不就ok了 

再说了 ,你web。config 限制成6m ,你也传不了6m的文件呀, 你还有其他信息需要发给服务端呀,比如cookie ,userAgent 等。


或者你在客户端处理,js 得不到文件大小 ,你又不愿意用flash ,插件跟不可能,
用ajax发给服务端,服务端……

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

热点排行