0

在将数据上传到数据库之前,如何检查数组输入类型文件是否为空。如果有一个空显示任何用户理解并且不更新数据的内容。

这是示例代码html

 <h3>Extra profile information</h3>
 <table class="form-table">
     <tr>
     <th><label for="Upload">Upload</label></th>
     <td>
        <form action="" method="post">
        <input name="profile_photo[]" type="file"  value="" />
        <input name="profile_photo[]" type="file"  value="" />
        <input name="profile_photo[]" type="file"  value="" />
        <br/>
    </form>
     </td>
 </table>

我曾经使用 $x=$_GET['profile_photo']; 并回显 $x; 在上传到数据库之前,它返回空或 null。

4

5 回答 5

2
if (!empty($_FILES) && is_array($_FILES)) {

  // you have files
}
于 2013-05-08T09:04:49.093 回答
2
$x=$_FILES['profile_photo']['name']; 

使用此代码

于 2013-05-08T09:05:40.003 回答
0

只需对发布数据运行 for 循环并验证

$error = "";
$emptyFiles="";
$i=0;
foreach ($_FILES['profile_photo'] as $name) {
   if (isset($name['name']) && $name['name']!="") {
       $error.="";
   } else {
       $error.= "yes";
       $emptyFiles.=$_FILES['profile_photo'][$i];
   }
    $i++;
}

然后使用

$error 和 $emptyFiles 字符串来获取哪些是空字段,哪些不是。

于 2013-05-08T09:05:48.400 回答
0

您还可以在提交之前通过 javascript 验证输入

html:

<form action="" method="post" onsubmit="return validateInputs();">
    <input name="profile_photo[]" type="file"  value="" />
    <input name="profile_photo[]" type="file"  value="" />
    <input name="profile_photo[]" type="file"  value="" />
    <input type="submit" />
</form>

javascript:

validateInputs = function() {    
    inputs = document.getElementsByName('profile_photo[]');
    for (var ind in inputs){
        if (inputs[ind].value=="") {
            alert("validation failed");
            return false;
        }
    }         
}
于 2013-05-08T09:12:18.767 回答
0

在 javascript/jquery 中

var file = $(".profile_photo").map(function(){return $(this).val();}).get();


for(var i=0; i<file.length; i++){
   if( file[i] == ""){
     alert("Please select file");
     return false;
   }
}

在 PHP 中

if( $_FILES['profile_photo']['error'] != 0 ){
   // code to handle if there is no file selected
}
于 2017-04-28T09:56:51.147 回答