-1
votes

Enregistrer l'URL d'image utilisateur dans la base de données

Je sauve l'image dans le dossier public mais j'ai besoin de l'URL d'image enregistrée dans la base de données au lieu du nom du fichier.

https://devdojo.com/episode/laravel-user-image xxx


2 commentaires

Il est recommandé de ne pas stocker des chemins dans dB comme ils peuvent changer ou si le changement de domaine, etc., il sera difficile de modifier tous les chemins de DB. Mieux vaut garder le chemin dans .env ou fichier de configuration et conserver le nom de l'image dans dB


Que voulez-vous dire "Obtenez-le de l'application mobile"? Vous devez servir les images de votre serveur Web.


3 Réponses :


-2
votes

Vous devez convertir img en base64 pour le stocker comme une chaîne dans dB.

Je ne le recommande jamais, mais de toute façon: p>

$data = base64_encode($img); 


0 commentaires

2
votes

Il est fortement recommandé d'utiliser cette approche, à la place de sauvegarder le nom dans la base de données et d'utiliser le chemin de fichier avec le nom de la base de données pour afficher l'image.

Par exemple:

< / p>

Dites-nous simplement ce que vous essayez d'accomplir.


2 commentaires

Ceci est la bonne réponse - Enregistrez le nom de fichier (ou déterminez le nom de fichier de la clé primaire du modèle ou quelque chose de similaire). De cette façon, vous avez le contrôle sur le nom de domaine (vous pouvez le changer, le mettre derrière un CDN, etc.). De plus, d'autres réponses telles que la base 64 encoder l'image ne seront pas à l'échelle.


Vous avez raison mais je sauve déjà le nom dans la base de données, mais je pensais que l'enregistrement du chemin ou de l'URL comme une chaîne dans la DB serait plus facile et plus sûr de la réutiliser dans d'autres situations



1
votes

Si vous avez besoin d'une URL de fichier d'enregistrement dans dB, vous pouvez utiliser quelque chose comme celui-ci

 $user->avatar = '/uploads/avatars/'.$fileName);


2 commentaires

Il serait généralement préférable de quitter le domaine, c'est-à-dire $ user-> avatar = 'uploads / avatars / avatars / même nom de fichier); et laissez la poignée de Laravel qui en utilisant l'URL ) Helper, c'est-à-dire . De cette façon si le domaine change à l'avenir, les images ne se cassent pas tous.


@ceejayoz a accepté. Beaucoup mieux. Va réparer la réponse