对文件输入执行客户端验证 - 接受属性不起作用
本文关键字:属性 不起作用 验证 文件 输入 执行 客户端 | 更新日期: 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" />
它应该工作