Multi file upload - изменить статус скрытого элемента базы файла - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь загрузить несколько файлов, используя 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

Ценю, что смотрю на это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...