对文件输入执行客户端验证 - 接受属性不起作用

本文关键字:属性 不起作用 验证 文件 输入 执行 客户端 | 更新日期: 2023-09-27 18:34:09

我目前正在尝试在Visual Studio中构建一个小网站,ASP.net C#。用户必须上传文件,但我只想接受 Excel 文件。

目前我已经有了这块服务器端验证:

public ActionResult Index(HttpPostedFileBase file){
  if (file != null && file.ContentLength > 0){
      string fileName = Path.GetFileName(file.FileName);
      if (fileName.EndsWith(".xlsx")) //enkel gewoon Excel bestand wordt aanvaard. {
           ...

这就可以了,但我不知道如何在客户端仅允许 Excel 文件。我目前有这个,但它还没有限制用户。我仍然可以上传我想要的任何文件。

<input type="file" name="file" value="Bestand kiezen" accept=".xlsx" /> 

我知道客户端限制不是 100% 万无一失的,但无论如何我都想实现该功能。提前感谢!

编辑:感谢下面的家伙,我得到了答案。我最终使用了它,它显示了.xls和.xlsx文件

<input type="file" name="file" value="Bestand kiezen" accept="application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />

对文件输入执行客户端验证 - 接受属性不起作用

某些浏览器支持 accept 属性,但不是全部,支持级别各不相同; 例如,请参阅文件输入"accept"属性的答案 - 它有用吗? 和 Firefox 中的输入接受属性

请注意,accept=".xlsx"在支持浏览器时限制对文件扩展名为 .xlsx 的文件的输入,从而通常忽略使用旧版本的 Excel 创建的 Excel 文件,这些文件生成.xls文件。通常,任何可以处理.xlsx的软件也可以处理.xls

<input type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />它应该工作