【问题标题】:How to control upload file size in .NET/C#?如何在 .NET/C# 中控制上传文件的大小?
【发布时间】:2011-09-15 00:57:45
【问题描述】:

我的 .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");
    }
}

【问题讨论】:

标签: c# .net upload


【解决方案1】:
<configuration>   
  <system.web>     
       <httpRuntime maxRequestLength="8000" />   
  </system.web> 
 </configuration> 

【讨论】:

    【解决方案2】:

    您使用 web.config 对此进行排序。特别是 maxRequestLength 属性。

    See here.

    【讨论】:

      【解决方案3】:

      【讨论】:

        【解决方案4】:

        不幸的是,没有简单的方法可以解决这个问题。我在上传图片时遇到了类似的问题,有人尝试上传未压缩的 24 英尺宽的女儿生日派对图片:)

        问题是您无法确定文件大小,直到文件基本上通过帖子上传到服务器。这将导致服务器需要永远和一天的时间才能加载并最终超时,这不利于用户友好的页面。

        我能想到的唯一解决方案是闪存文件上传器,它会在客户端计算机上压缩文件,然后将压缩文件发送到站点。所以一个 200mb 的图像变成了一个 100k 的文件。有一些开源 Flash 项目只需要在谷歌上搜索即可。这就是 Facebook 和 Picasa 等网站上传文档/图像的方式。

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

        【讨论】:

          猜你喜欢
          • 2018-11-12
          • 2012-12-01
          • 1970-01-01
          • 2020-09-13
          • 2016-07-07
          • 2011-12-05
          • 2012-11-02
          • 2014-03-19
          • 2015-01-03
          相关资源
          最近更新 更多