PHP判断file框是否已选择文件(支持多文件)

本例子要告诉你几种处理办法,一是用js 或者是jquery遍历判断,另一种是传给php之后利用tmp_name值来判断,方法都简单下面我们一起来看看.

单个表单时,代码如下:

  1. <form action="?" method="post" enctype='multipart/form-data'>
  2. 文件上传:<input type="file" name="file" />
  3. <input type="submit" value="提交" />
  4. </form>
  5. <?php
  6. //判断pic文件框是否已经选择文件
  7. if (!emptyempty($_FILES['file']['tmp_name'])) {
  8. echo '已选择文件';
  9. }else {
  10. echo '请选择文件';
  11. }
  12. //PS:$_FILES后面的['tmp_name']一定不要忘写,它表示是一个临时的意思
  13. ?>

当然这个可以先用JS去判断一下,方法如下:

  1. <script>
  2. var send=document.getElementById("send");
  3. send.onclick=function() {
  4. var file=document.getElementById("file").value;
  5. if (file.length<1) {
  6. alert('请选择图片');
  7. return false;
  8. }
  9. }
  10. </script>

多文件上传时,表单中有多个<input type="file" name="uploadfile" contentEditable="false" >,提交表单时需要判断其中至少要有一个input已经选择好文件,代码如下:

  1. <input type="file" name="uploadfile" contentEditable="false" ><br>
  2. <input type="file" name="uploadfile" contentEditable="false" ><br>
  3. <input type="file" name="uploadfile" contentEditable="false" ><br>
  4. <input type="file" name="uploadfile" contentEditable="false" ><br>
  5. <input type="file" name="uploadfile" contentEditable="false" >

使用jQuery进行判断,代码如下:

  1. var fileFlag = false;
  2. $("input[name='uploadfile']").each(function(){
  3. if($(this).val()!="") {
  4. fileflag = true;
  5. return false;
  6. }
  7. });
  8. if(fileFlag) {
  9. alert("已有选择好文件的");
  10. }

只要fileFlag为true,就可以退出each循环,不需要再对剩下的input进行判断,在each中使用return false退出循环,使用return true结束当前次循环,进行下一次循环.