Upload fichier image vers base SQL
Bonjour,
J'essai d'uploader une image vers une base de données (au format HTML) mais je n'y arrive pas.
Mon code fonctionne pour l'upload mais je récupère le fichier temporaire à la place de mon image.
Si quelqu'un peut m'apporter une solution à ce problème, merci d'avance ;)
Concernant le code, j'utilise Silex (avec composants Symfony, notamment pour le formulaire) et Twig pour la vue.
Je pense que le soucis provient de mon contrôleur, il faut certainement ajouter une méthode mais je ne trouve pas de solution.
Mon contrôleur :
// Add a new commodity (Admin)
Code:
1 2 3 4 5 6 7 8 9
| $app->match('/admin/commodity/add', function(Request $request) use ($app) {
$commodity = new Commodity();
$commodityForm = $app['form.factory']->create(CommodityType::class, $commodity);
$commodityForm->handleRequest($request);
if ($commodityForm->isSubmitted() && $commodityForm->isValid()) {
$directory = __DIR__.'/../web/images/upload';
$file = $commodityForm['picture']->getData();
$file->move($directory, $file->getClientOriginalName()); // ici, je récupère bien le bon fichier dans le répertoire souhaité |
// ? comment récupérer le fichier uploader ds la bd à la place du fichier tmp
Code:
1 2 3 4 5 6 7
| $app['dao.commodity']->update($commodity); // ici, la méthode update insert les variables souhaitées dans ma base de donnée mais je récupère le fichier temporaire donc ko
$app['session']->getFlashBag()->add('success', 'Le produit a été mis à jour sur la carte.');
}
return $app['twig']->render('commodity_form.html.twig', array(
'title' => 'Ajout d\'un produit',
'commodityForm' => $commodityForm->createView()));
})->bind('admin_commodity_add'); |
Concernant le reste du code, rien de particulier. J'utilise la méthode buildForm() de Symfony pour contruire mon formulaire avec pour l'image
Code:
1 2
| ->add('picture', FileType::class, array(
'required' => true)) |
Je n'ai pas implémenter de contrainte pour le moment.
Merci d'avance pour vos retours.