在C#中限制文件大小服务器端

时间:2013-07-24 22:31:25

标签: c# asp.net-mvc

我目前正在MVC4中上传文件但是在我的控制器中我试图将文件大小限制为最大4MB但是收到了以下警告

comparison to integral constant is useless

使用Haacks示例

[HttpPost]
public ActionResult Upload(HttpPostedFileBase file)
{
if (file.ContentLength > 0)
{
if (file.ContentLength < 4000000000 )
{
   var fileName = System.IO.Path.GetFileName(file.FileName);
   var path = System.IO.Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
   file.SaveAs(path);
 }

当我运行代码时,我收到错误

Maximum request length exceeded.

由于file.ContentLength是一个我无法控制的int,我不知道这是怎么回事。任何人都可以帮助我如何限制服务器端的文件大小。

修改对于那些可能想要指出40000000004gb的人您是对的。但即使我将其替换为4000000,我的操作也会成功完成,但由于If()不满意,因此不会保存文件,但file.ContentLength < 4000000会返回false。

编辑这不是一个重复的问题我想将文件大小限制到某个限制,而不是忽略IIS中的文件大小限制。

2 个答案:

答案 0 :(得分:3)

在web.config中设置此值

  

<httpRuntime maxRequestLength="4096"/>

答案 1 :(得分:0)

对于使用def termsAp(n): li = [] for x in range(1, n + 1000, 1): num = 3 * x + 2 if num % 4 != 0: li.append(num) return li[:n] n = int(input()) termsAp(n) 的用户,可以使用以下内容。

IFormFile