Bonjour,
Je développe actuelement un mini blog et je voulais un avis sur le stockage des images.
Je voulais stocker l'image 'banniere' des news directement en BDD.
J'ai donc un champs image de type blob.
Mais j'ai beau cherché je ne trouve pas comment l'enregistrer dans la base.
J'ai bien rajouté dans l'entête du formulaire
Form::model($post,['method'=>'post', 'url'=> route('admin.posts.store',$post), 'files' => 'true'])
Mon input :
<div class="form-group">
{!! Form::label('image', 'Image de couverture') !!}
{!! Form::file('image', null, ['class' => 'form-control']) !!}
</div>
Mon controller reste inchangé pour l'instant.
Si je laisse comme cela actuelement j'ai une erreur :
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'image' in 'field list' (SQL: insert into `posts` (`title`, `slug`, `category_id`, `content`, `online`, `image`, `updated_at`, `created_at`) values (Titre, titre-slug, 1, text, C:\wamp\tmp\phpE2A4.tmp, time, time))
J'ai modifié le values pour que cela soit plus claire, sauf bien sûr l'url de l'image temporaire généré...
Je suppose que je dois récuperer le fichier envoyé et l'encodé avant de faire un $post->save() mais je ne rouve pas comment faire...
Des idées ?
Bonjour,
je ne vois pas pourquoi tu voudrais enregistrer ton image dans la base de donnée, d'un point de vue performance il est beaucoup plus interessant de l'enregistrer sur disque. Je te conseille donc de creer un dossier pour tes images dans /public et d'y deplacer l'image en question et ainsi de mettre en base de donnée le lien vers l'image. De plus si ma mémoire est bonne il faut transformer ton image en tableau de bit pour pouvoir l'enregistrer en base de donnée, ce serait de compliquer la vie pour rien.
Je pense effectivement faire comme cela mais n'ayant jamais travaillé avec des image en bdd j'aurais voulu savoir comment...
Bonsoir.
Si je laisse comme cela actuelement j'ai une erreur :
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'image' in 'field list'
L'erreur ci-dessus, veut tout simplement dire, que la colonne nommée image n'existe pas dans la table.
C:\wamp\tmp\phpE2A4.tmp
Que comptes-tu faire avec le nom du fichier temporaire sauvegardé en base de données ?
Comme dis plus tôt, stocker des images dans la base de donnée va être très compliqué à gérer au niveau des performances.
Une meilleure option est de créér un champs de type string et d'y stocker le chemin vers le fichier.
Si tu as des questions n'hésite pas.