如何在.NET / C#中控制上传文件的大小?

| 我的.NET应用程序中有一个上传附件页面。只要上传的文件小于4 MB,它就可以正常工作。如何设置上传文件的大小?我想将限制设置为小于8 MB。如果文件大于8 MB,则将确定上传过程。 这是我在后端的代码。 File1是上传控制者。
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
    if ((File1.PostedFile != null) && (File1.PostedFile.ContentLength > 0))
    {
        string name=ViewState[\"UserName\"].ToString();
        string fn = System.IO.Path.GetFileName(File1.PostedFile.FileName);
        string extension = Path.GetExtension(File1.PostedFile.FileName);
        if (extension == \"\")
            return;
        DirectoryInfo di = new DirectoryInfo(Server.MapPath(\"~/Attachments/\" + name));
        FileInfo[] rgFiles = di.GetFiles(\"*.*\");
        foreach (FileInfo fi in rgFiles)
        {
            if (fi.Name.Equals(fn))
            {
                ShowMessage(this, \"This file name already exists, please check the list.\");
                return;
            }
        }
        string SaveLocation = Server.MapPath(\"~/Attachments/\" + name + \"/\" + fn);
        try
        {
            File1.PostedFile.SaveAs(SaveLocation);
            ShowMessage(this,\"The file has been uploaded.\");
        }
        catch (Exception ex)
        {

            ShowMessage(this,\"Error\" + ex.Message);
        }
        GetList();
    }
    else
    {
        ShowMessage(this,\"Please choose one file\");
    }
}
    
已邀请:
        
<configuration>   
  <system.web>     
       <httpRuntime maxRequestLength=\"8000\" />   
  </system.web> 
 </configuration> 
    
        您使用web.config对此进行排序。特别是maxRequestLength属性。 看这里。     
        您必须更改maxRequestLength: http://www.bloggingdeveloper.com/post/Limiting-the-File-Upload-Size-in-ASPNET.aspx 这是一个存在相同问题的现有文章:如何在ASP.NET中增加最大上传文件大小?     
        不幸的是,没有简单的方法来解决这个问题。我在上传图片时遇到了类似的问题,有人尝试上传未压缩的女儿生日聚会的24英尺宽图片:) 问题是您无法弄清楚文件的大小,直到文件基本上通过帖子上传到服务器为止。这将导致服务器花费一整天的时间来加载服务器,最终导致超时,这对用户友好的页面而言是没有用的。 我唯一能想到的解决方案是一个Flash文件上传器,它将在客户端计算机上压缩文件,然后将压缩后的文件发送到站点。因此200mb的图片就变成了100k的文件。有一些开放源代码的Flash项目,只需要使用Google即可。这就是Facebook和Picasa等网站用于上传文档/图像的方式。 我没有尝试过寻找Flash5,但是HTML5可能会提供一些东西,因为它在不久的将来基本上会取代Flash。     

要回复问题请先登录注册