我知道我们可以在 HTML 5 中使用带有接受属性 <input accept="audio/*|video/*|image/*|MIME_type">
的过滤器类型
但是这些所有内容也都显示了“所有文件”选项。我想严格限制某些文件类型,例如“*.pdf,所有办公字词类型,图像,excel”。
我们怎么做?
我的代码喜欢
@Html.TextBoxFor(m => m.Attachment, new { @class = "form-control", type = "file" })
最佳答案
您只需在您的案例应用程序/pdf 中用完整的 MIME 类型替换您的 accept(s) 而不是通配符 *。
@Html.TextBoxFor(m => m.Attachment, new { @class = "form-control", type = "file", accept="application/pdf" })
您可以用逗号分隔多个 mime 类型,如果您希望在单个上传控件中包含 pdf 和 word,您可以这样做:
@Html.TextBoxFor(m => m.Attachment, new { @class = "form-control", type = "file", accept="application/pdf, application/msword" })
更新
如果您将接受的 mime 类型存储在一个集合中(此处硬编码用于演示目的)
private List<string> mimeTypes = new List<string> {
"application/pdf",
"application/msword"
};
您可以将接受的 mime 类型添加到您的模型中,像这样返回它们:
model.MimeTypes = string.Join(", ", mimeTypes);
像这样渲染它们:
@Html.TextBoxFor(m => m.Attachment, new { @class = "form-control", type = "file", accept=Model.MimeTypes })
关于asp.net - mvc4 或 html 5 中的文件输入过滤器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21536669/