Insérer des images dans une base de données MySQL à l’aide de PHP est une tâche courante lors du développement d’applications Web. Cet article vous guidera à travers les étapes nécessaires pour accomplir cette tâche.
CREATE TABLE images (
id INT AUTO_INCREMENT PRIMARY KEY,
nom_image VARCHAR(100),
type_image VARCHAR(100),
taille_image INT,
donnees_image LONGBLOB
); <form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="image" accept="image/*">
<input type="submit" value="Uploader">
</form> <?php
// Connexion à la base de données
$servername = "localhost";
$username = "utilisateur";
$password = "motdepasse";
$dbname = "nom_base_de_données";
$conn = new mysqli($servername, $username, $password, $dbname);
// Vérification de la connexion
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// Vérification si le formulaire a été soumis
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nom_image = $_FILES['image']['name'];
$type_image = $_FILES['image']['type'];
$taille_image = $_FILES['image']['size'];
$donnees_image = file_get_contents($_FILES['image']['tmp_name']);
// Préparation de la requête SQL
$sql = "INSERT INTO images (nom_image, type_image, taille_image, donnees_image) VALUES (?, ?, ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ssib", $nom_image, $type_image, $taille_image, $donnees_image);
// Exécution de la requête
if ($stmt->execute()) {
echo "L'image a été téléversée avec succès.";
} else {
echo "Erreur lors du téléversement de l'image: " . $conn->error;
}
// Fermeture de la connexion
$stmt->close();
$conn->close();
}
?> <?php
// Connexion à la base de données
$servername = "localhost";
$username = "utilisateur";
$password = "motdepasse";
$dbname = "nom_base_de_données";
$conn = new mysqli($servername, $username, $password, $dbname);
// Vérification de la connexion
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// Récupération de l'image depuis la base de données
$sql = "SELECT * FROM images WHERE id = ?";
$stmt = $conn->prepare($sql);
$id_image = 1; // Remplacez 1 par l'ID de l'image que vous souhaitez afficher
$stmt->bind_param("i", $id_image);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
$type_image = $row['type_image'];
$donnees_image = $row['donnees_image'];
// Affichage de l'image
header("Content-type: " . $type_image);
echo $donnees_image;
} else {
echo "Image non trouvée.";
}
// Fermeture de la connexion
$stmt->close();
$conn->close();
?> Voici des exemples de code pour deux cas d’utilisation différents : la création d’une galerie d’images et la gestion des photos de profil utilisateur.
<!DOCTYPE html>
<html>
<head>
<title>Uploader une image</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="image" accept="image/*">
<input type="submit" value="Uploader">
</form>
</body>
</html> <?php
$servername = "localhost";
$username = "utilisateur";
$password = "motdepasse";
$dbname = "nom_base_de_données";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nom_image = $_FILES['image']['name'];
$type_image = $_FILES['image']['type'];
$taille_image = $_FILES['image']['size'];
$donnees_image = file_get_contents($_FILES['image']['tmp_name']);
$sql = "INSERT INTO images (nom_image, type_image, taille_image, donnees_image) VALUES (?, ?, ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ssib", $nom_image, $type_image, $taille_image, $donnees_image);
if ($stmt->execute()) {
echo "L'image a été téléversée avec succès.";
} else {
echo "Erreur lors du téléversement de l'image: " . $conn->error;
}
$stmt->close();
$conn->close();
}
?> <?php
$servername = "localhost";
$username = "utilisateur";
$password = "motdepasse";
$dbname = "nom_base_de_données";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM images";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo '<img src="data:' . $row['type_image'] . ';base64,' . base64_encode($row['donnees_image']) . '" />';
}
} else {
echo "Aucune image trouvée.";
}
$conn->close();
?> <!DOCTYPE html>
<html>
<head>
<title>Uploader une photo de profil</title>
</head>
<body>
<form action="upload_profile_pic.php" method="post" enctype="multipart/form-data">
<input type="file" name="profile_pic" accept="image/*">
<input type="submit" value="Uploader">
</form>
</body>
</html> <?php
$servername = "localhost";
$username = "utilisateur";
$password = "motdepasse";
$dbname = "nom_base_de_données";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nom_image = $_FILES['profile_pic']['name'];
$type_image = $_FILES['profile_pic']['type'];
$taille_image = $_FILES['profile_pic']['size'];
$donnees_image = file_get_contents($_FILES['profile_pic']['tmp_name']);
$sql = "INSERT INTO profiles (user_id, profile_pic_name, profile_pic_type, profile_pic_size, profile_pic_data) VALUES (?, ?, ?, ?, ?)";
$stmt = $conn->prepare($sql);
$user_id = 1; // Remplacez 1 par l'ID de l'utilisateur actuel
$stmt->bind_param("isssi", $user_id, $nom_image, $type_image, $taille_image, $donnees_image);
if ($stmt->execute()) {
echo "La photo de profil a été téléversée avec succès.";
} else {
echo "Erreur lors du téléversement de la photo de profil: " . $conn->error;
}
$stmt->close();
$conn->close();
}
?> Ces exemples fournissent une base solide pour gérer le téléchargement et l’affichage d’images dans une base de données MySQL en utilisant PHP dans différents contextes d’application.
En suivant ces étapes, vous serez en mesure d’insérer des images dans une base de données MySQL en utilisant PHP, ainsi que d’afficher ces images à partir de la base de données. Assurez-vous de sécuriser votre code en vérifiant les types MIME et les tailles d’image pour éviter les vulnérabilités.
Les rouages d’une entreprise se jouent rarement sous les projecteurs. Ce qui apparaît à l’extérieur…
Quand on prépare un mémoire, on consacre souvent l’essentiel de son énergie au plan, à…
Dans beaucoup d’entreprises, l’analyse financière commence souvent de la même manière : une pile de…
Télécharger une fiche méthode pratique et utile ⬇️ L’analyse de document en SVT fait partie…
Introduction En classe de 4ème, l’étude du récit occupe une place importante dans l’apprentissage du…
Télécharger un Modèle Excel de classification des documents avec suivi automatisé ⬇️ Dans toute organisation…
This website uses cookies.