首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何强制输入类型文件仅接受.html或.htm文件

如何强制输入类型文件仅接受.html或.htm文件
EN

Stack Overflow用户
提问于 2013-03-15 07:09:31
回答 3查看 4K关注 0票数 4

在这里,我试图上传html/htm文件点击一个按钮。为此,我使用了“input type=file”属性,将其“接受”属性设置为只接受html/htm扩展,如下所示:

代码语言:javascript
运行
复制
<input type="file" name="htmla" id="htmla" accept="text/html" />

但是它在不同的浏览器中表现出不同的行为。

在firefox中,它接受所有文件。

在chrome中,它接受html和图像。

在IE中,与firefox相同

有没有办法让它通过javascript或jquery这样的方法只接受html/htm文件?

注意:我在MVC 4中使用此控件。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-15 07:20:30

标准输入控制中没有任何东西可以用来实现它。

是的,在文件输入控件上有一个"accept"属性,您可以在其中指定所需的文件类型,但许多浏览器无法识别它。所以最好的方法就是检查用户使用Javascript或Jquery选择的文件名(扩展名)。

代码语言:javascript
运行
复制
function ValidateFile() {
        var fileName = document.getElementById("inputFileId").value
        if (fileName == "") {
            alert("upload a valid File with .htm extension");
            return false;
        }
        else if (fileName.split(".")[1].toUpperCase() == "HTM")
            return true;
        else {
            alert("Invalid File");
            return false;
        }
        return true;
    }

但是,没有什么可以阻止用户将可执行文件重命名为.html

票数 2
EN

Stack Overflow用户

发布于 2013-03-15 07:14:46

这是HTML5特定的属性。并不是所有的浏览器都支持它。对于那些没有执行检查的人,您必须在服务器上执行检查。另一种可能是检查使用javascript选择的文件的扩展名。基本上,您可以像这样获得所选的文件名:$('#htmla').val()。然后是扩展的正则表达式。

票数 3
EN

Stack Overflow用户

发布于 2013-03-15 07:17:10

代码语言:javascript
运行
复制
<script>
  function test(obj,filter){

    var file = obj.value.match(/[^\/\\]+$/gi)[0];
    var rx = new RegExp('\\.(' + (filter?filter:'') + ')$','gi');
    if(filter&&file&&!file.match(rx)){
      alert("check the file type, only html is accepted");
      //input file
      //it's totally a bad idea...
      //document.body.innerHTML = "<input type='file' onchange=\"test(this,'html');\" >";

    }
  }
</script>
<body>
    <input id="inputFile" type="file" onchange="test(this,'html');">
</body>

也许这应该是给你的斯夫普拉

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

https://stackoverflow.com/questions/15426674

复制
相关文章

相似问题

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