Caricamento immagine su cartella remota + mysql

Riccardo Contu

Nuovo Utente
14 Lug 2019
19
0
1
Buongiorno,

avrei bisogno di una mano per caricare tramite un form un'immagine all'interno di una cartella presente sul mio spazio web e allo stesso tempo associarle un nome casuale e univoco da inserire su una tabella del database mysql in modo da poterla recuperare per successive visualizzazioni.

Il form è questo:

Codice:
<form id='inserisci_img' action='inserisci_img.php' method='post' enctype='multipart/form-data'>
<input type='file' name='img'>
</form>
La cartella su cui caricare le immagini supponiamo si chiami 'img'. Sapreste darmi una mano?
 

Tommy03

Utente Attivo
6 Giu 2018
511
50
28
17
Bassano del Grappa (VI)
Su Internet è pieno di esempi, ti posto il codice di uno preso da w3schools:
PHP:
<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
  $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
  if($check !== false) {
    echo "File is an image - " . $check["mime"] . ".";
    $uploadOk = 1;
  } else {
    echo "File is not an image.";
    $uploadOk = 0;
  }
}

// Check if file already exists
if (file_exists($target_file)) {
  echo "Sorry, file already exists.";
  $uploadOk = 0;
}

// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
  echo "Sorry, your file is too large.";
  $uploadOk = 0;
}

// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
  echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
  $uploadOk = 0;
}

// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
  echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
  if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
    echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
  } else {
    echo "Sorry, there was an error uploading your file.";
  }
}
?>
Questo sembra completo
Ovviamente devi cambiare i parametri come li vuoi te
 

Riccardo Contu

Nuovo Utente
14 Lug 2019
19
0
1
Perfetto ci sono riuscito, ne approfitto per chiedere un'altro aiuto.

Quando vado a recuperare l'immagine utilizzo
Codice:
<img src=img_1/" . $row['img'] . ">
Nel mio caso è possibile anche che il campo 'img' nel mio database possa essere vuoto. Vorrei che se il campo 'img' fosse vuoto venisse restituita la stringa "Nessuna immagine disponibile", mentre se non fosse vuoto venisse restituito appunto
Codice:
<img src=img_1/" . $row['img'] . ">
e quindi visualizzata l'immagine
 

Tommy03

Utente Attivo
6 Giu 2018
511
50
28
17
Bassano del Grappa (VI)
PHP:
<?php
$sql = mysqli_query($conn, "SELECT img FROM ...");
if(mysqli_num_rows($sql) > 0){
while($row=mysqli_fetch_assoc($sql)){
$immagine=$row['img'];
echo "<img src='img_1/$immagine'>";
}
}else{
echo "Nessuna immagine disponibile";
}
?>