Mysql
 sql >> Database >  >> RDS >> Mysql

Impossibile caricare e archiviare l'immagine nel database utilizzando php

Hai bisogno di una funzione per inviare la tua richiesta, altrimenti hai semplicemente compilato una stringa:questa:

$insert = "INSERT INTO image(name,picture) VALUES ('$image_name','$image')";

dovrebbe essere seguito da questo:

mysqli_query($con, $insert);

Gli avvisi sono causati da più problemi con il codice. Per prima cosa stai controllando se il file è stato caricato nel modo sbagliato:questo

if(isset($_FILES['image'])){
    $file = $_FILES['image']['tmp_name'];
}

Imposterà sempre un $file variabile, anche se nessun file è stato selezionato nel form, portando quindi a non eseguire mai questa istruzione if:

if(!isset($file)){
    echo "Please select an image";
}

e di eseguire invece sempre quello che c'è nel blocco else, che causa gli errori, perché le funzioni che hai citato, che sono contenute in questo blocco else, non sono in grado di operare su nessun file.

Pertanto, il semplice controllo del caricamento del file risolverà il problema:un modo per farlo sarebbe rimuovere prima questo, il che non è utile

if(isset($_FILES['image'])){
    $file = $_FILES['image']['tmp_name'];
}

e poi cambia questo:

if(!isset($file)){
    echo "Please select an image";
}

a questo:

if(!isset($_FILES['image']['tmp_name'])){
    echo "Please select an image";
}