0

Mam problem z wrzucaniem plików na serwer.

Poniższy kod działa prawidłowo jako osobny plik ale jak go wrzucę do innego gdzie jest już inny formularz wrzucający dane do bazy to upload plików nie działa. Dziwne jest to ze kiedyś działał ale aplikacja była mniej rozbudowana o kod tak PHP jak i js. Oczywiście isset wskazuje na inny input niż główny do edycji rekordu w bazie. Nie wiem jak do tego podejść, zacząłem już czytać o podwójnym formularzu na stronie ale nie wiem czy to dobry kierunek. Czytałem też to https://www.w3schools.com/TAgs/att_button_formenctype.asp ale nie do końca rozumiem działanie. Jakieś porady jak to ogarnąć?

<?php
require('db.php');
?>
 <!DOCTYPE HTML>
<html lang="pl">
<head>
 <meta charset="utf-8" />
 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
 <title>Upload file</title>
</head>
 <body>
  <form action="" method="post" enctype="multipart/form-data">
 <fieldset>
    <legend>Upload file</legend>
      <label for="zl">Zlecenie</label><input type="text" name="zl" id="zl"><br>
      <input type='file' id='file' name='file'><br>
      <input name='submit' type='submit' value='Dodaj'></br>
 </fieldset>
</form>
<?php
if (isset($_POST['submit']))
  {
  #retrieve file name from file
  $fileName = $_FILES['file']['name'];
  #max mb
  $fileSize = $_FILES['file']['size'];
  #temporary file name to store file
  $tname = $_FILES['file']["tmp_name"];
  #get file ext from file
  $fileExt = explode('.', $fileName);
  #change to lower case
  $fileActualExt = strtolower(end($fileExt));
  #allowed ext
  $allowed = array('jpg','jpeg','png','pdf');
 if (in_array($fileActualExt,$allowed)){
  if($fileSize <= 5000000){
  #file name with a random number so that similar don't get replaced
  $pname = rand(1000,10000)."-".$fileActualExt;
  #upload directory path
  $uploads_dir = 'uploads';
  #TO move the uploaded file to specific location
  move_uploaded_file($tname, $uploads_dir.'/'.$pname);
    echo "OK";
  }else{
    echo "File too big";
  }
  }elseif(!in_array($fileActualExt,$allowed)){
    echo "Bad format";
  }
}                       
  if(isset($_POST['submit'])){
  $zl = $_REQUEST['zl'];
  $upload = "UPDATE guitars SET img2 ='".$pname."' WHERE ID=$zl";
  mysqli_query($con,$upload);
}
?>
 </body>
</html>

Jacek Kołcon Answered question 4 lutego 2021
Add a Comment