如何在下载之前检查内存中的文件大小

时间:2014-11-20 16:35:54

标签: asp.net

我目前正在开展一个项目,我需要检查从网站下载的文件的大小。我知道默认情况下,分配的文件是4MB,我可以在Web配置文件中更改它,问题是如果文件大小大于4MB,系统应该显示错误。我的页面是这样的

后面的代码看起来像这样

private void btnExtract_Click(object sender, System.EventArgs e)
{

 DataView dataView =  testReportData.WorktestItem.DefaultView;

            MemoryStream ms = new MemoryStream();
            BinaryFormatter f = new BinaryFormatter();
            f.Serialize(ms, testReportData);
            if (ms.Length < 4096)
            {
                this.ErrorLbl = Page.FindControl("ErrorLbl");
                ErrorLbl.Visible = true;
                ErrorLbl.Text = "error";


            }
}

任何想法如何解决这个问题

1 个答案:

答案 0 :(得分:1)

你的小于/大于标志是向后的。如果文件大小小于4096字节,则只显示错误。另外,你的问题是4MB。 ms.Length的单位是字节。所以4MB实际上是4,194,304字节。 4096字节只有4KB。这应该是代码:

private void btnExtract_Click(object sender, EventArgs e)
{   
     DataView dataView =  testReportData.WorktestItem.DefaultView;
     MemoryStream ms = new MemoryStream();
     BinaryFormatter f = new BinaryFormatter();
     f.Serialize(ms, testReportData);
     if (ms.Length > 4194304)
     {
         this.ErrorLbl = Page.FindControl("ErrorLbl");
         ErrorLbl.Visible = true;
         ErrorLbl.Text = "error";
     }
}

如果在第一行代码上设置断点,然后逐行逐步执行代码并将其执行方式与您认为应该执行的方式进行比较,那么您可能已经想到了这一点。如果它不同,那么你可以查看这些值,看看为什么它的执行方式不同。这是基本的调试技巧,你必须学会​​如何才能获得成功,这绝对是至关重要的。如果Visual Studio是您的IDE,那么Microsoft provides some documentation表示如何执行此操作。我还建议您观看YouTube教程。

相关问题