限制asp.net中文件上传的大小

Posted

技术标签:

【中文标题】限制asp.net中文件上传的大小【英文标题】:Restrict the size of file upload in asp.net 【发布时间】:2014-08-25 08:49:42 【问题描述】:

我想将我的文件大小上传限制在一定限度内。但是,这里的问题是我想在超过上传大小时提供弹出警报。但是,这里的网页显示以下错误

HTTP Error 404.13 - Not Found

The request filtering module is configured to deny a request that exceeds the request content length. 这是我的代码

 protected void Button1_Click(object sender, EventArgs e)

    if (fuDocpath.HasFiles)
    
        try
        
            DateTime now = DateTime.Now;
            lbldateStamp.Text = now.ToString("mm_dd_yyyy_hh_mm_ss");
            //string foldername = lblsessionID.Text + "_" + lbldateStamp.Text;
            string folderpath = (Server.MapPath("~/Uploaded_Files/") + lblsessionID.Text + "_" + lbldateStamp.Text + "/");
            Directory.CreateDirectory(folderpath);
            if (fuDocpath.PostedFile.ContentLength < 20970000)
            
                try
                
                    foreach (HttpPostedFile files in fuDocpath.PostedFiles)
                    
                        string filename = Path.GetFileName(files.FileName);
                        string folderpath1 = folderpath + "/";
                        fuDocpath.SaveAs(folderpath1 + filename);
                        lblName.Text = lblName.Text + "|" + filename;
                        lblerror.Text = string.Empty;
                    
                
                catch (Exception eex)
                
                    ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + eex.Message + "')", true);
                

            
        
        catch (Exception ex)
        
            lblerror.Text = "File couldn't be uploaded." + ex.Message;
            lblName.Text = string.Empty;
        
    

【问题讨论】:

您要上传的文件总大小是多少? 10 到 15 MB 之间的任何地方。我实际上正在创建基于用户的应用程序。因此,客户端将上传最大总大小为 15 MB 的文件 您的代码运行良好....我没有收到任何错误。您能否向我们提供当此错误弹出时您的实际操作重现此错误的步骤问题 尝试上传任何大于 5 MB 的内容,它不会显示弹出警报 你能用jquery吗???在 jquery 中检查文件大小并显示弹出警报会很容易 【参考方案1】:

看看这个 - How to increase the max upload file size in ASP.NET?

您可以在 web.config 中更改最大请求大小 - 默认为 4Mb

【讨论】:

那很好但是如果我想显示弹出警报它比上传的任何东西都大 您需要使用客户端验证。这可能会有所帮助 - codeproject.com/Tips/290098/… - 它是 FileUpload 控件的自定义验证器,基本上可以完成您想要做的事情【参考方案2】:

如果您想知道浏览器抛出的错误代码/消息的性质,here 是一个解决该问题的帖子。 我会引用一段以防万一将来链接断开:

默认情况下,ASP.NET 仅允许将 4,096 KB(或 4 MB)或更小的文件上传到 Web 服务器。要上传较大的文件,您必须更改 Web.config 文件中该部分的 maxRequestLength 参数。

注意当在Machine.config文件中设置了maxRequestLength属性,然后发出超过maxRequestLength值的请求(例如文件上传)时,无法显示自定义错误页面。相反,Microsoft Internet Explorer 将显示“找不到服务器或 DNS”错误消息。

解决方法是修改 Machine.config 文件,如@sh1rts 之前给出的答案中所述。

【讨论】:

以上是关于限制asp.net中文件上传的大小的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC 中的文件大小上传限制:web.config(s) 中的 maxRequestLength 设置超过 1 个

在 Asp.Net core v3.1 中增加上传文件大小

asp/php/asp.net 上传附件大小修改怎么操作?

asp.net开发,form表单,file文件上传

如何在 ASP.NET C# 中上传 10GB+ 大小的文件

在 ASP.NET 4 中上传之前如何检查 .xls 文件大小?