web-dev-qa-db-fra.com

comment et où stocker des images avec laravel?

comment et où puis-je stocker des images à l'aide de laravel?

contexte: Je veux afficher des images dans ma vue principale (celles-ci sont prédéfinies par moi) . Je souhaite également stocker des images téléchargées par les utilisateurs, mais je ne sais pas où les stocker.

Je voudrais appeler ceux-ci de la vue ...

Merci beaucoup pour l'aide. :)

13
Reco Jhonatan

En gros, vous pouvez enregistrer vos fichiers où vous le souhaitez dans votre application Laravel, à condition que vous disposiez des autorisations nécessaires pour créer un répertoire et un fichier.

Mais je préfère enregistrer les fichiers dans le dossier storage/app. Laravel fournit une API simple pour manipuler des fichiers sur le disque. Voir le docs .


Mettre à jour:

Cette réponse a été publiée lorsque Laravel était dans la version 5.2 . À partir de la version 5.3, vous pouvez facilement créer des liens symboliques en exécutant la commande artisan php artisan storage:link. Voir le docs .

16
Carter

Si vous souhaitez les afficher sur votre site, stockez-les dans votre répertoire public. Comme ils sont téléchargés par les utilisateurs, vous devrez les transmettre via un formulaire. Voici un exemple de contrôleur.

  $file = Input::file('picture');
  $file->move(public_path().'/images/',$user->id.'.jpg');

L'utilisateur soumettra un formulaire avec un champ d'image. Les deux lignes ci-dessus le stockent dans le répertoire public dans un dossier images, avec l'identifiant de l'utilisateur correspondant comme nom. Vous avez probablement intérêt à créer un modèle dans votre base de données pour les images et leurs chemins. Si vous le faites, ajoutez ces lignes après les deux précédentes. 

 $image = new Image;
 $image->path='/images/'.$user->id.'.jpg';
 $image->user_id = $user->id;
 $image->save();

Pour l'afficher dans la vue, définissez simplement une variable $ image sur le modèle d'image correct dans votre contrôleur et transmettez-la à la vue. Puis pop son chemin dans le src de l'image.

 <img src={{$image->path}} alt={{$image->path}}> 
1
DanielPahor

Créez un répertoire pour les images dans myapp/public/images et conservez les images dessus.

<img src="{{URL('/images/logo.jpg')}}">
0
teran teshara