Bonjour actuellement je suis des tutos sur comment enregistrer des images dans une bdd, mais dans tous les tutos que je vois il faut forcemment passé par un formulaire pour y arriver(et j'y arrive sa marche bien) mais, est-ce que c'est possible d'insérer des images dans une table sans utiliser de formulaire via une simple requete préparée?si oui comment?
merci pour vos réponses

Entourez votre code en utilisant "```" pour bien le mettre en forme. (ne copiez pas trop de code)

Ce que je veux
Enregistrer mes images dans mes tables sans passer par un formulaire

Ce que j'obtiens

15 réponses


Hello :)

Alors tu peux ouvrir ton image avec $file = fopen() et tu utilises $file pour stocker l'image ou le path dans la base de données

Et si ça ne fonctionne pas, tu peux toujours passer le $file par API comme si c'était un formulaire avec Guzzle, tu te fait un service pour gérer le stockage de l'image, tu fais une requête Guzzle vers ce service

$file = fopen("filename.png", "r");
$guzzle_client->post($store_image_url, [ "body" => $file ]);

Et dans ton controller tu récupères la requêtte Guzzle comme si c'était un formulaire

Salut,

Oui, c'est possible d'insérer des images dans une table sans utiliser de formulaire, mais c'est un peu plus compliqué. Il faut d'abord convertir ton image en une chaîne de caractères, par exemple en utilisant la fonction base64_encode de PHP. Ensuite, il faut insérer cette chaîne dans un champ de type BLOB ou TEXT de ta table, en utilisant une requête préparée. Enfin, il faut récupérer ton image en utilisant la fonction inverse, base64_decode, et en lui spécifiant le bon type MIME.

Voici un exemple de code qui illustre cette méthode :

// Connexion à la base de données
$pdo = new PDO('mysql:host=localhost;dbname=ma_bdd', 'root', '');

// Chemin de l'image à insérer
$image = 'mon_image.jpg';

// Conversion de l'image en chaîne de caractères
$data = file_get_contents($image);
$data = base64_encode($data);

// Insertion de l'image dans la table
$sql = "INSERT INTO ma_table (id, image) VALUES (:id, :image)";
$stmt = $pdo->prepare($sql);
$stmt->execute(['id' => 1, 'image' => $data]);

// Récupération de l'image depuis la table
$sql = "SELECT image FROM ma_table WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->execute(['id' => 1]);
$data = $stmt->fetchColumn();

// Conversion de la chaîne de caractères en image
$data = base64_decode($data);
header('Content-type: image/jpeg');
echo $data;

J'espère que ça t'aide. Si tu as d'autres questions, n'hésite pas à les poser.

MERCI pour toutes ses infos, sa fonctionne déjà , j'arrive a enregistrer les images

salut lucyLeroy et popote merci pour votre aide franchement , mon site a bien avancé, dites moi est-ce que vous avez discord si oui j'aimerais beaucoup vous contacter là bas si possible

on est sur le discord de grafikart. le lien est dans le footer .

Sache aussi que c'est bien de vouloir finir son site mais j'ai vraiment l'impression que tu demande de l'aide trop souvent. et tu manque cruellement de logique ne serait-ce que pour fournir une réponse.

Je vais être dur mais si tu ne suis pas dès maintenant un cours et que tu ne t'améliore pas, alors tu va ne faire que du copier coller en boucle. Je sais que on dire toujours que c'est bien de poser des questions que de ne pas le faire mais à un moment faut aussi faire en sorte de nous aider.

Rien que le code est vraiment horrible à lire à chaque fois. Et encore quand tu le donne. Je sais que perso je suis strict avec le formatage du code mais là toi tu code vraiment n'importe comment. J'ai essayé plusieurs fois de te demander de venir pour que l'on regarde ensemble et aussi pour que je t'apprenne un peu les bases qu'il faut avoir mais tu n'es pas là.

Donc pour éviter de faire perdre du temps à 2 autres personnes en plus de ce à qui tu demande sûrement, pose toi la question de si tu ne fais pas de dev pour les mauvaises raisons. Et si tu as besoin d'un site et que tu n'y connais rien je préfère que tu demande à quelqu'un de te le créer moyennant finance que de sortir un site qui sera sûrement plein de bug et de faille en tout genre.

Milles fois j'aurai besoin d'aide milles fois je demanderai de l'aide, c'est a sa que sert un forum, si tu ne veux pas aider tu passes ton chemin, si tu veux aider tant mieux, je ne fais pas d'effort ?, c'est ton ressentis et il est légitime , mais tu n'as meme pas idée d'a quel point je me donne du mal. Nul n'a le monopole du savoir, et évite aussi de parler pour les autres...

mais tu n'as meme pas idée d'a quel point je me donne du mal

Il est la le soucis, quand je vois les code fourni, on a l'impression que c'est juste du copié-collé. Sache que je ne demande pas d'avoir le savoir mais la on parle d'avoir du bon sens, avant même de parler de logique dans le dev.

Milles fois j'aurai besoin d'aide milles fois je demanderai de l'aide

Si c'est mille questions différentes et que ce sont des questions qui en plus ne sont pas trouvable facilement ou parceque tu manques d'une notion importante, oui je suis d'accord mais regarde bien tes questions. On dirait vraiment que c'est juste un manque de formation car tu as besoin de ton site absolument. Si le métier de dev est complexe et aussi chère payé ce n'est pas pour rien. Après libre à toi de concevoir ton site mais ne viens pas pleurer quand tu auras un problème avec car ton code pose de gros problème (bug ou sécu).

si tu ne veux pas aider tu passes ton chemin
Le nombre de temps que j'ai passé à t'attendre pour que je puisse t'aider et tu ne viens pas, merci d'avance du temps précieux que je t'ai offer et que j'ai perdu car tu veux juste une réponse. En fait indirectement j'essaye de t'aider en te disant gentillement que potentiellement tu n'es pas fais pour le dev. Faut pas le prendre mal, je ne suis pas fait pour être boulanger ou autre métier par exemple. Des fois faut le remarquer et essayé de le corriger. Le seul truc si tu veux vraiment continuer c'est peut-être de faire des exercices d'algorithmie basique puis de commencer sur des choses plus simples.

Et sache que j'ai aidé plein de personne avant et ceux qui ont montrer qu'ils voulaient et qui avait un minimum, ils sont maintenant content de pouvoir travialler en autonomie.

sans toi c'est sur que je serais meme pas ou j'en suis , j'apprends au fur et a mesure ce n'est pas facile , j'ai a peine trois mois de formation,et franchement merci pour ton temps parce que tu n'étais vraiment pas obligé, les informations sont facilement trouvables peut etre pour toi, mais effectivement il y a enormement de notions qui me manque , souvent juste la syntaxe me bloque sa arrive , mais je fais des efforts crois moi. Je ne fais pas de copié collé non plus sinon j'aurais pas eu soucis puisque le code fonctionne, j'essaie de reflechir par moi meme , d'etre le plus indépendant possible , mais avec ou sans toi mes objectifs je vais les atteindre, je ne suis pas fais pour la programmation? laisse moi deux ans dans le bain et on verra si je serai pas meme meilleur que toi ;-) le défi est lancéééééé mdrr , seirux quenti je t'apprécie beaucoup sans meme te connaitre , et je préfère que tu continu de m'aider quand tu peux sincèrement, encore une fois je te demande pas de coder pour momi , mais le simple fait de me mettre sur la voie, de me donner un lien pour des tutos souvent sa fait l'affaire

Alors 2ans de formations ce sera sera pas sufffisant, un conseil continue 6mois en formation pour les bases mais après il faut que tu fasses de l'alternance, en formation tu apprends les bases c'est tout, mais c'est en entreprise que tu apprends à réfléchir, ton tech lead va détruire ta façon de faire que tu pensait bonne et ensuite il va remodeler ton cerveau, et au bout de 2ans d'xp tu devrait avoir le niveau intermédiaire, enfin 2ans c'est un peu la zone grise entre junior et intermédiaire ça dépend des gens :p

Dans ces cas là je ne peux que te conseiller de regarder des tutos sur comment écrire bien son code.

En php

En JS

voilaaa je file voir sa tout de suite

les standards de syntaxes oui pas mal, il y a un packet qui s'appelle ES-lint, son role est de te forcer à à appliquer ce que quenti t'as donné, si tu respectes pas la syntaxe ton code sera tout rouge :)

Après pour les pratiques PHP, il y a une logique indispensable à apprendre c'est les principes SOLID, alors en principe c'est pour la POO mais ça fonctionne aussi dans du procédural isolé dans des functions

sa sa sera trèèèèèèès utile

et par rapport a mon problème de carousel quenti, je viens a peine de le résoudre , j'ai vu tout seul ou etais mon erreur donc bon... comme quoi je me tourne pas les pouces