Zamiana nazwy pliku wysyłanego do bazy/folderu

0

Cześć, przychodzę z pytaniem, pewnie jak wszyscy tutaj na forum.
Mój problem tkwi w tym, że gdy przesyłam obrazek do folderu, to jego nazwa to np. 12342342.nazwa a w bazie 12342342
Chciałbym aby jego nazwa składała się z tych liczb (w folderze).
I tu właśnie utknąłem, przeglądałem neta, ale nie znalazłem, najwyraźniej słabo szukam :( Były różne rozwiązania, ale nie takie jakie chciałbym uzyskać.

Obsługa formularza

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

    $pname = rand().".".$_FILES["file"]["name"];
  
    $tmp_name = $_FILES["file"]["tmp_name"];
    
    $uploads_dir = 'img';

    move_uploaded_file($tmp_name, $uploads_dir.'/'.$pname);

    $sql = "INSERT INTO artykuly (tytul, zajawka, news, obrazek)
    VALUES
    (
    '".$_POST["tytul"]."',
     '".$_POST["zajawka"]."',
     '".$_POST["news"]."',
     ('$pname')
    )";

  if (mysqli_query($conn, $sql)) {
      echo "Dodano artykul <br />";
  } else {
      echo "Error: " . $sql . "<br>" . mysqli_error($conn);
  }
  
    
}

Formularz

<form action="upload.php" method="post" enctype="multipart/form-data">
   
	    Obrazek:<br /> <input type="file" name="file" /><br />
	    Tytul:<br /> <input type="text" name="tytul" /><br />
	    Zajawka:<br /> <textarea name="zajawka" rows="10" cols="30"></textarea><br />
	    News:<br /> <textarea name="news" rows="15" cols="50"></textarea><br /><br />

	    <input type="submit" value="Dodaj!" name="submit" />
	</form>

Jak coś niejasno napisałem proszę pytajcie.

1

Masz ten $tmp_name to czemu nie zrobisz Inserta do bazy z nim zamiast $pname.
No chyba, że czegoś zupełnie nie rozumiem.

0

$tmp_name nie działa, wywala errory
Do bazy $pname dodaje liczbę, ale w folderze jest jak napisałem wyżej, z tą nazwą.

edit

include("connect.php");

if(isset($_FILES['file'])){
      $errors= array();
      $file_name = $_FILES['file']['name'];
      $file_size =$_FILES['file']['size'];
      $file_tmp =$_FILES['file']['tmp_name'];
      $exp = explode('.',$_FILES["file"]["name"]);
      $ext = end($exp);
      $name = rand() . '.' . $ext;
      $str = strtolower($name);

      $extensions= array("jpeg","jpg","png");
      
      if(in_array($str,$extensions)== false){
         $errors[]="Rozszerzenie obrazka tylko JPEG lub PNG.<br />";
      }
      
      if($file_size > 2097152){
         $errors[]='Max rozmiar 2 MB';
      }
      
      if(empty($errors)==true){
         move_uploaded_file($file_tmp,"img/".$str);

          $sql = "INSERT INTO artykuly (tytul, zajawka, news, obrazek)
            VALUES
            (
            '".$_POST["tytul"]."',
             '".$_POST["zajawka"]."',
             '".$_POST["news"]."',
             ('$str')
            )";

          if (mysqli_query($conn, $sql)) {
              echo "Dodano artykul <br />";
          } else {
              echo "Error: " . $sql . "<br>" . mysqli_error($conn);
          }

         echo "Success";
      }else{
         print_r($errors);
      }
   }
mysqli_close($conn);

Edytowałem wcześniejszy kod, który miałem i udało się! Nazwa obrazka jest taka sama w folderze jak i bazie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1