多文件上传-更改文件基础隐藏元素的状态

时间:2018-11-01 16:28:31

标签: php html-form

我正在尝试使用PHP正常上传多个文件。现在在我的表单中,我将动态显示文件选项以及它的文档类型,简历,身份证证明等。

用户不必一次上传所有文件,他可以选择自己拥有的所有文档,然后使用提交按钮上传它们,之后我想将该文档状态更新为“已接收”。尝试执行此操作时,无论选择了多少文件,我都只会更新最后一条记录。

这是我的表单代码-

<table class="table striped bordered border hoverable white">
  <?php
    $returnMsg = "";
    $docsNStatus="SELECT * FROM applicantdocs where username = '$login_session' and docStatus='Not Received'";
    if(!$result=mysqli_query($db,$docsNStatus))
      die('There was an error retrieving the information');

    echo "<form method='POST' action='../../actionHandler.php' enctype='multipart/form-data' target='resultFrame'>";

    while ( $row = $result->fetch_assoc() ){
      $uploadFileName = "fileUpload".$row['sno'];
      $docID = $row['sno'];
      echo "<tr>
        <td>".$row['docName']."</td>
        <td>".$row['docStatus']."</td>
        <td>
        <input type='hidden' name='docNumber' value='$docID'/>
        <input type='hidden' name ='docNumber_$docID' value='$docID'/> //Here I am dynamically setting the hidden element docnumber and the id 
        <label style= 'padding: 5px!important;' class='myLabel'>
            <input type='file' name='uploadingFiles[]' id='uploadBtn'/>
            <span>Upload doc</span>
        </label>

        </td></tr>";
    }

    echo "</table><br/><input type='submit' name ='uploadFile' value='Click here to upload files' class='formButton'/> ";
  ?>

PHP代码:

if(isset($_POST["uploadFile"])){     

    $userIDquery = "SELECT firstName, lastName from applicants WHERE username= \"{$login_session}\"";
    $userRes= mysqli_query($db, $userIDquery);
    $userRec= mysqli_fetch_array($userRes, MYSQLI_ASSOC);
    $lName = $userRec["firstName"].'_'.$userRec["lastName"];

    $storageLocation = "Assets/Documents/".$lName."/";

    $errors = array();
    $extension = array('jpg','png','jpeg','gif','pdf'); 

    $bytes = 1024;
    $allowedMB = 10;
    $totalBytes = $allowedMB * $bytes * 1024;

    foreach($_FILES["uploadingFiles"]["tmp_name"] as $key=>$tmp_name) {

        $docNo = mysqli_real_escape_string($db, $_POST["docNumber"]);
        $onlyDocNumToUpdate = mysqli_real_escape_string($db, $_POST["docNumber_".$docNo]);

        $uploadThisFile = true;

        $file_name=$_FILES["uploadingFiles"]["name"][$key];
        $file_tmp=$_FILES["uploadingFiles"]["tmp_name"][$key];

        $ext=pathinfo($file_name,PATHINFO_EXTENSION);

        if(!in_array(strtolower($ext),$extension)) {
            array_push($errors, "File type is invalid. Name:- ".$file_name);
            $uploadThisFile = false;
        }

        if($_FILES["uploadingFiles"]["size"][$key] > $totalBytes) {
            array_push($errors, "File size must be less than 10MB. Name:- ".$file_name);
            $uploadThisFile = false;
        }

        if($uploadThisFile){
            $filename=basename($file_name,$ext);
            $newFileName=$filename.$ext;                
            if(move_uploaded_file($_FILES["uploadingFiles"]["tmp_name"][$key], $storageLocation.$newFileName)){
                $query = "UPDATE applicantdocs set docStatus ='Received' 
                where username = '$login_session' 
                and sno=$onlyDocNumToUpdate";

                if(!mysqli_query($db, $query)){
                    print '<br><b style="color:#B60000">Exception:</b> ';
                    throw new Exception(showerror($db));
                } else
                    print "The selected files have been uploaded successfully.";    
            }
        }
    }

    mysqli_close($db);
    $count = count($errors);
    if($count != 0){
        foreach($errors as $error){
            echo $error."<br/>";
        }
    }       
}

我的表单如下所示- enter image description here

欣赏一下。

0 个答案:

没有答案