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){
}
});
}