繁体   English   中英

PHP如何更新数据库表中不同列中上传的多个文件

[英]PHP How to update uploaded multiple file in different column in DB table

我有一个 HTML 表单来上传两个 PDF 文件。 我能够成功地将一个文件上传到一列,但不确定如何将每个 PDF 文件上传到数据库表的不同列。 下面是我的代码:


   if(isset($_POST["submit"])){
                 
$errors = array();
$uploadedFiles = array();
$extension = array("pdf");
$bytes = 5024;
$KB = 5024;
$totalBytes = $bytes * $KB;
$UploadFolder = "UploadFolder";
$counter = 0;


foreach($_FILES["files"]["tmp_name"] as $key=>$tmp_name){
  $temp = $_FILES["files"]["tmp_name"][$key];
  $vendor_blicense = $_FILES["files"]["name"][$key];
   
  if(empty($temp))
  {
      break;
  }
   
  $counter++;
  $UploadOk = true;
   
  if($_FILES["files"]["size"][$key] > $totalBytes)
  {
      $UploadOk = false;
      array_push($errors, $vendor_blicense." file size is larger than the 5 MB.");
    echo '<script>alert("File size is larger than the 5 MB...")</script>';
  }
   
  $ext = pathinfo($vendor_blicense, PATHINFO_EXTENSION);
  if(in_array($ext, $extension) == false){
      $UploadOk = false;
      array_push($errors, $vendor_blicense." is invalid file type. Only PDF");
      echo '<script>alert("Invalid file type. Only pdf")</script>';
  }
   
  
   
  if($UploadOk == true){

if(file_exists($UploadFolder."/".$vendor_blicense) == true){
 
$vendor_blicense1 = uniqid().$vendor_blicense;
$success = mysqli_query($kone,$query);


$preparedStatement = $kone->prepare("UPDATE table SET vendor_blicense = :vendor_blicense WHERE vendor_id = '$send_id'");

$preparedStatement->execute([ ':vendor_blicense' => $vendor_blicense1 ]);



        move_uploaded_file($temp,$UploadFolder."/".$vendor_blicense1);
      array_push($uploadedFiles, $vendor_blicense1);

      }


    else{

$preparedStatement = $kone->prepare("UPDATE table SET vendor_blicense = :vendor_blicense WHERE vendor_id = '$send_id'");

$preparedStatement->execute([ ':vendor_blicense' => $vendor_blicense ]);


      move_uploaded_file($temp,$UploadFolder."/".$vendor_blicense);
      array_push($uploadedFiles, $vendor_blicense);

    }
  }
}

     }


?>

<input type="file" id="files" name="files[]" accept=".pdf">
<input type="file" id="files2" name="files[]" accept=".pdf">
<input name="submit" type="submit" value="Submit">
``

如何获取每个输入“file”和“files2”的名称和PDF文件并提交到服务器上的数据库和Uploadfolder上的不同列? 我有这样的查询: UPDATE hobber_vendor SET vendor_blicense = :vendor_blicense AND vendor_btax = :vendor_btax WHERE vendor_id = '$send_id' 我想更新 vendor_btax 以存储来自“files2”的文件名,并将文件上传到 move_uploaded_file($ temp,$UploadFolder."/".$vendor_btax); array_push($uploadedFiles, $vendor_tax);

所以毕竟研究,故障排除,并遵循我的每一行代码。 能够通过首先将我的 HTML 代码更改为以下来解决此问题:

<input type="file" id="files" name="files['license']" accept=".pdf">
<input type="file" id="files2" name="files['tax']" accept=".pdf">
<input name="submit" type="submit" value="Submit">


然后我为每个输入获取值并将其分配给数据库中的每一列。 此外,我在 foreach 循环之外声明了uniqid()以在用户尝试上传与服务器上的文件具有相同路径名的文件时重用。 下面是我完整的 PHP 代码:

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

$errors = array();
$uploadedFiles = array();
$extension = array("pdf");
$bytes = 5024;
$KB = 5024;
$totalBytes = $bytes * $KB;
$UploadFolder = "UploadFolder";
$random = uniqid();

foreach($_FILES["files"]["tmp_name"] as $key=>$tmp_name){
  $temp = $_FILES["files"]["tmp_name"][$key];
  $filer = $_FILES["files"]["name"][$key];

  $vendor_blicense = $_FILES["files"]["name"]["license"];

  $vendor_btax = $_FILES["files"]["name"]["tax"];

if(empty($temp))
  {
      break;
  }
   
  $counter++;
  $UploadOk = true;
   
  if($_FILES["files"]["size"]["license"] > $totalBytes)
  {
      $UploadOk = false;
      array_push($errors, $vendor_blicense." file size is larger than the 5 MB.");
    echo '<script>alert("File size is larger than the 5 MB...")</script>';
  }
  
  if($_FILES["files"]["size"]["tax"] > $totalBytes)
  {
      $UploadOk = false;
      array_push($errors, $vendor_btax." file size is larger than the 5 MB.");
    echo '<script>alert("File size is larger than the 5 MB...")</script>';
  }
  

  $ext = pathinfo($vendor_blicense, PATHINFO_EXTENSION);
  if(in_array($ext, $extension) == false){
      $UploadOk = false;
      array_push($errors, $vendor_blicense." is invalid file type. Only PDF");
      echo '<script>alert("Invalid file type. Only pdf")</script>';

  }
  
  $ext = pathinfo($vendor_btax, PATHINFO_EXTENSION);
  if(in_array($ext, $extension) == false){
      $UploadOk = false;
      array_push($errors, $vendor_btax." is invalid file type. Only PDF");
      echo '<script>alert("Invalid file type. Only pdf")</script>';

  }
   
  
   
  if($UploadOk == true){

if(file_exists($UploadFolder."/".$filer)){

$filer1 = $random.$filer;
$vendor_blicense1 = $random.$vendor_blicense;
$vendor_btax1 = $random.$vendor_btax;
$success = mysqli_query($kone,$query);


$preparedStatement = $kone->prepare("UPDATE table SET vendor_blicense = :vendor_blicense, vendor_btax = :vendor_btax, vendor_tax_check = :vendor_tax_check,vendor_bstage = :vendor_bstage  WHERE vendor_id = '$send_id'");
$preparedStatement->execute([ ':vendor_blicense' => $vendor_blicense1, ':vendor_btax' => $vendor_btax1, ':vendor_tax_check' => $vendor_tax_check, ':vendor_bstage' => $vendor_bstage]);



        move_uploaded_file($temp,$UploadFolder."/".$filer1);
      array_push($uploadedFiles, $filer1);

      }


    else{

$preparedStatement = $kone->prepare("UPDATE table SET vendor_blicense = :vendor_blicense, vendor_btax = :vendor_btax, vendor_tax_check = :vendor_tax_check, vendor_bstage = :vendor_bstage WHERE vendor_id = '$send_id'");

$preparedStatement->execute([':vendor_blicense' => $vendor_blicense, ':vendor_btax' => $vendor_btax, ':vendor_tax_check' => $vendor_tax_check, ':vendor_bstage' => $vendor_bstage]);


      move_uploaded_file($temp,$UploadFolder."/".$filer);
      array_push($uploadedFiles, $filer);

    }
  }
}
if($counter>0){
  if(count($errors)>0)
  {
      echo "<b>Errors:</b>";
      echo "<br/><ul>";
      foreach($errors as $error)
      {
          echo "<li>".$error."</li>";
      }
      echo "</ul><br/>";
  }
   
  if(count($uploadedFiles)>0){

echo "successfully uploaded";

}

 
$kone->close();

     }                               
}
else{
  
echo '<script>alert("Please, Select file(s) to upload!")</script>';
echo "<center>Please, Select file(s) to upload!</center>";
}




}


}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM