首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何用HTML输入文件类型限制文件类型?

如何用HTML输入文件类型限制文件类型?
EN

Stack Overflow用户
提问于 2009-12-30 10:43:08
回答 5查看 24.1K关注 0票数 18

如何使用HTML输入文件类型限制文件类型?

我有这个

代码语言:javascript
复制
<input type="file" id="fileUpload" name="fileUpload" size="23" accept="Calendar/ics"/>

我正在尝试将类型限制为仅iCalendar格式类型。

我还想在服务器端检查它。如何在ASP.NET MVC中执行此操作

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-12-30 10:51:13

遗憾的是,您不能像在标准文件浏览器对话框中那样限制文件扩展名。但是,一旦用户选择了文件,您就可以检查扩展名。

您可以添加此事件处理程序。

代码语言:javascript
复制
filebox.Attributes.Add("onchange", "fileSelectedChanged(this);");

这个JavaScript函数

代码语言:javascript
复制
function fileSelectedChanged(obj) {
    var filePath = obj.value;

    var ext = filePath.substring(filePath.lastIndexOf('.') + 1).toLowerCase();
    if(ext != 'csv') {
        alert('Only files with the file extension CSV are allowed');
    } else {
        document.getElementById('form1').submit();
    }
}

您还应该在服务器上使用以下命令进行检查:

代码语言:javascript
复制
filebox.PostedFile.FileName

和:

代码语言:javascript
复制
filebox.PostedFile.ContentType
票数 20
EN

Stack Overflow用户

发布于 2009-12-30 10:53:25

文本/日历是正确的mime类型

代码语言:javascript
复制
<input type="file" id="fileUpload" name="fileUpload" size="23" accept="text/calendar" />
票数 3
EN

Stack Overflow用户

发布于 2009-12-30 20:22:53

instaed of accept应该使用contetypes属性,请注意contentypes中只有一个“t

在服务器代码检查中,如下所示

HttpPostedFileBase文件= Request.Files;

if(!file.ContentType.startsWith("text/calendar")) {//错误}

希望这将解决你的问题,如果可以,请记下我的答案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1978134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档