如何控制中的上传文件大小.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英尺宽的未压缩图片:)

问题是,在文件基本上通过帖子上传到服务器之前,你无法计算出文件的大小。这将导致服务器永远需要一天的时间才能加载,最终超时,这对用户友好的页面没有好处。

我能想到的唯一解决方案是一个闪存文件上传器,它会在客户端机器上压缩文件,然后将压缩的文件发送到网站。因此,一个200兆字节的图像就变成了一个10万字节的文件。有一些开源的flash项目只需要在谷歌上搜索它们。这就是像Facebook和Picasa这样的网站上传文档/图像的功能。

我还没有尝试过寻找一个,但也许HTML5会提供一些东西,因为它基本上会在不久的将来取代flash。

最新更新