【问题标题】:File input empty but an empty "file" shows up in Request.Files文件输入为空,但 Request.Files 中显示一个空的“文件”
【发布时间】:2015-12-30 07:03:03
【问题描述】:

我有一个具有以下文件输入的视图:

<input type="file" name="SchemaFiles" id="SchemaFiles" class="form-control" multiple/>

我的模型有这个属性:

  public List<HttpPostedFileBase> SchemaFiles { get; set; }

当我为此输入选择一两个文件时,一切正常。但是,如果我不选择任何文件并提交表单,那么SchemaFiles.Count1SchemaFiles[0]null(但确实存在)。 ModelState.IsValidtrue

有没有办法避免这种情况?

【问题讨论】:

  • 不要添加无关语言的标签!
  • 模型中的代码是c#。我想这更像是一个 asp.net-mvc 问题(已标记)。这真的值得投反对票吗?
  • 你添加了 C 标签 - 为什么?
  • 我一定是打错了 c# 标签。

标签: asp.net asp.net-mvc


【解决方案1】:

这是设计使然,看起来根本原因是浏览器。 请参阅以下链接以供参考:

【讨论】:

  • 我会看看浏览器是否有错误报告或解释。
  • 我认为大多数浏览器都会这样做,这可能是遗留的原因。我的观点是,当没有选择文件时(至少根据这些帖子),通过 HTTP 传入的数据的文件名为空,解决此问题的正确方法是在服务器代码中将其过滤掉。一般来说,您应该始终不信任来自浏览器的数据,始终检查并过滤掉无效数据。
猜你喜欢
  • 2012-02-13
  • 2019-02-08
  • 2010-11-25
  • 2016-08-10
  • 1970-01-01
  • 1970-01-01
  • 2014-04-12
  • 2013-07-16
  • 1970-01-01
相关资源
最近更新 更多