Javascript 如何将文件浏览器过滤到IE上的特定扩展名?

Javascript 如何将文件浏览器过滤到IE上的特定扩展名?,javascript,jquery,html,Javascript,Jquery,Html,我想创建上载文件操作,因此我输入以下代码: <img src="[@spring.url '/images/buttons/upload.jpg'/]" onclick="uploadFile()" title="Upload File" /> //I want to do this without showing the input file <div style="display: none;"> <input id="inputFile" type=

我想创建上载文件操作,因此我输入以下代码:

<img src="[@spring.url '/images/buttons/upload.jpg'/]" onclick="uploadFile()" title="Upload File" />

//I want to do this without showing the input file
<div style="display: none;">
    <input id="inputFile" type="file" name="upload" accept=".txt,.csv,.zip" onchange="uploadListener();">
</div>

这在创建自定义过滤器时从未奏效,我发现IE不支持“accept”属性,不幸的是,我不得不使用它。任何建议???

您必须在服务器上检查。作为一种最佳实践,尤其是对于文件上载,您无论如何都应该在服务器端执行一些检查,以避免恶意脚本注入/执行。更新HTML/javascript客户端以上载任何类型的文件确实非常容易。。。我还建议将您的文件存储在webroot之外,但这与此问题无关……

我这样做,但我希望用户在执行此操作时看到“只是”特定的文件。什么文件在webroot之外?!!哦,好吧,我的错。那么我很惊讶你可以等IE实现这个属性。您应该将上传的文件存储在webroot之外,这样,如果上传了恶意文件,人们就不能从web启动它……文件输入元素的
accept
属性在IE10中实现。@RayNicholus是的,但在以前的任何版本中都没有:-(IE 8是必需的explorer@MuhammadRamahy由于缺少对
accept
属性的支持,无法限制IE9或更早版本中“文件选择器”对话框中显示的文件类型。您需要在服务器端强制执行文件类型限制,无论如何都应该这样做。
function uploadFile(){
       document.getElementById('inputFile').click();

   }

   function uploadListener(){

           alert($('#inputFile').val());
           $.ajax({
               type: "POST",
               url: "/panda/assay/designability/uploadFile.htm",
               data: {file: $('#inputFile').val()} ,
               success: function(response){

               }
           });

   }