2009-09-13 23 views
6

在PHP中,这是如果选择一个文件,你将如何检查:如何检查使用JavaScript选择文件?

$_FILES['item']['size']>0 

怎么样在JavaScript?

我需要知道,因为我有一个功能,只有在选中某个文件时才有效。

回答

19

http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-49531485说:类型DOMString


当元件的类型属性具有值“正文”,“ 文件”或“密码”,这表示相应的表单控件的当前内容,在一个交互式用户代理。

<html> 
    <head><title>...</title> 
    <script type="text/javascript"> 
     function foo() { 
     var f = document.getElementById("f1"); 
     alert(""==f.value ? "nothing selected" : "file selected"); 
     } 
    </script> 
    </head> 
    <body> 
    <form> 
     <div> 
     <input id ="f1" type="file" name="x" /> 
     </div> 
    </form> 
    <button onclick="foo()">click</button> 
    </body> 
</html> 
6

我使用这个JavaScript:

var file_selected = false; 
function showNoFile() { 
    if(!file_selected) { alert('No file selected!'); } // or anything else 
} 

与这个网站的文件按钮:

<input type='file' onchange="file_selected = true;" ...> 
.... 
<input type='submit' onclick='showNoFile();'> 

希望帮助!

+0

我认为这是最好的答案。如果你想在某人选择一个文件时像AJAX请求那样执行,那么'onchange'函数就是你想要的。如果您只是简单地使用'onclick',它会在选择文件对话框打开后,但在选择文件之前触发。 – 2013-01-19 21:14:07

+1

它不能在chrome中工作...如果你选择一个文件,那么你不再选择文件,file_selected仍然是true,这是不正确的。 – 2014-12-11 15:08:29

0

因此,可以说你有一些HTML表单,你有一个自定义文件上传输入:

<label for="imageUploadButton"> 
<span class="btn" style="padding-left: 10px;">Click here for uploading a new picture</span> 
</label> 
<input type="file" name="avatar_picture" accept="image/gif,image/jpeg,image/png" id="imageUploadButton" style="visibility: hidden; position: absolute;"> 

而且要检查用户选择的文件/文件选择的文件名:

使用jQuery的

<script type="text/javascript"> 
    $(function() { 
    $("input:file").change(function(){ 
     var fileName = $(this).val(); 
     alert(fileName); //Do with the filename whatever you want 
    }); 
    }); 
</script> 

@https://stackoverflow.com/a/5670938/2979938

对于那些使用requireJS:

$("input:file").change(function() { 
    var fileName = $(this).val(); 
    alert(fileName); //Do with the filename whatever you want 
}); 
相关问题