tj_lamelo
a posé

Problème d'Upload de fichier en Production

**Bonsoir les dev’s j’ai un soucis. **

En local j’arrive à upload des fichiers et les enregistrer dans mon dossier public/storage/photo mais en production l’image n’est pas sauvegardée.

Je suis sur Cpanel

darwin_nathan
a répondu

Essaie de montrer ton code d'upload d'images pas en images pls

Confirmer la suppression

Êtes-vous sûr de vouloir supprimer cette réponse ? Cette action est irréversible.

jiordiviera
a répondu

Avec des captures d'écrans

Confirmer la suppression

Êtes-vous sûr de vouloir supprimer cette réponse ? Cette action est irréversible.

tj_lamelo
a répondu

if ($request->hasFile('photo')) {

1 $photoPath = $request->file('photo')->store('photos', 'public');
2
3
4 $depot->photo = basename($photoPath);
5 $depot->save();
6}
1 $photoPath = $request->file('photo')->store('photos', 'public');
2
3
4 $depot->photo = basename($photoPath);
5 $depot->save();
6}
Confirmer la suppression

Êtes-vous sûr de vouloir supprimer cette réponse ? Cette action est irréversible.

tncs
tncs 70 XP
a répondu

Verifie les droits de ton dossier public et si il ne sont pas correct tu donnes lui donne le droit d'ecriture tu peux le faire depuis le terminal avec la commande chmod chmod -R 775 public/storage ou depuis l'interface. et verifie le lien symblolique du dossier storage si il est bon dans le cas contraire tu le supprime et il faut faire un php artisan storage:link depuis le terminal.

Confirmer la suppression

Êtes-vous sûr de vouloir supprimer cette réponse ? Cette action est irréversible.

tj_lamelo
a répondu

ma formule Cpanel ne dispose pas d'accès SSH et le site est déjà en production comment faire?

Confirmer la suppression

Êtes-vous sûr de vouloir supprimer cette réponse ? Cette action est irréversible.

darwin_nathan
a répondu

Sur Cpanel y'a un terminal, losrque tu te connectes a ton compt; dans la barre de recherche tape terminal (si la langue en francais), puis tu vas naviguer vers le dossier de ton projte de ton projet, tu veux dire que tu as upload avec les dependencies (vendor)?

Confirmer la suppression

Êtes-vous sûr de vouloir supprimer cette réponse ? Cette action est irréversible.

tncs
tncs 70 XP
a répondu

Tu n'as pas necessairement besoin de SSH. Fais une recherche sur le mot terminal depuis ton cpanel, je pense que tu devrais l'avoir. Au pire, pour les droits, tu peux passer par un logiciel FTP tel que FileZilla ou WinSCP et tu fais un clic droit sur le dossier en question pour attribuer les droits, mais après il te faut faire un PHP artisan storage:link. et n'oublie pas si le lien storage n'est pas bon tu le supprime avant de faire un php artisan storage:link. normalement la recherche globale sur le mot "terminal" dans le cpanel devrait etre Ok

Confirmer la suppression

Êtes-vous sûr de vouloir supprimer cette réponse ? Cette action est irréversible.

darwin_nathan
a répondu

@tj_lamelo est ce que c'est bon ??

Confirmer la suppression

Êtes-vous sûr de vouloir supprimer cette réponse ? Cette action est irréversible.

stevymarlino
a répondu

Généralement ce que moi je fais

Uploader tes fichiers laravel a la racine de ton serveur. public_html

Normalement tu dois avoir cette architecture de fichiers.

fileArch.PNG

Maintenant tu dois créer un fichier .htaccess à la racine de ton public_html

1<IfModule mod_rewrite.c>
2 RewriteEngine On
3 RewriteRule ^(.*)$ public/$1 [L]
4</IfModule>
1<IfModule mod_rewrite.c>
2 RewriteEngine On
3 RewriteRule ^(.*)$ public/$1 [L]
4</IfModule>

permet de rediriger tes requêtes dans ton dossier public de laravel

supprime le dossier storage contenu dans ton dossier public

Maintenant tu peux lancer ta commande php artisan storage:link via ton terminal. s'il n est pas activer contacte ton service client ils le font facilement

NB: si dans ton compte d'hébergement du gère plusieurs domaine dans un seul compte d'hébergement ta commande devrait normalement fonctionner now.

Donc a la place de php artisan storage:link tu tape ln -s chemin_de_storage chemin_de_public

c'est le meme cas ici https://laravel.cm/forum/hebergement-de-votre-site-laravel-en-...

Confirmer la suppression

Êtes-vous sûr de vouloir supprimer cette réponse ? Cette action est irréversible.

stevymarlino
a répondu

@tj_lamelo si tu as trouver une autre solution merci de partager

Confirmer la suppression

Êtes-vous sûr de vouloir supprimer cette réponse ? Cette action est irréversible.

stephen2304
a répondu

La validation pour get les erreurs

1if ($request->hasFile('photo')) {
2
3 $request->validate([
4 'photo' => 'image|mimes:jpeg,png,jpg,gif|max:2048', // Taille max : 2MB
5 ]);
6
7 $photoPath = $request->file('photo')->store('photos', 'public');
8
9 $depot->photo = basename($photoPath);
10 $depot->save();
11}
1if ($request->hasFile('photo')) {
2
3 $request->validate([
4 'photo' => 'image|mimes:jpeg,png,jpg,gif|max:2048', // Taille max : 2MB
5 ]);
6
7 $photoPath = $request->file('photo')->store('photos', 'public');
8
9 $depot->photo = basename($photoPath);
10 $depot->save();
11}
Confirmer la suppression

Êtes-vous sûr de vouloir supprimer cette réponse ? Cette action est irréversible.

DidaceEkotto
a répondu
1$image = $request->mon_image;
2 $image_name = time().'-banniere-'.auth()->id().'.'.$image->getClientOriginalExtension();
3 $image->move("storage/photo/",$image_name)
4
5 //pour l'enregistrer en bd
6
7 $exemple->image = "storage/photo/{$image_name}";
8
9 //dans le fichier blade
10
11 <img src="{{asset($exemple->image)}}">
1$image = $request->mon_image;
2 $image_name = time().'-banniere-'.auth()->id().'.'.$image->getClientOriginalExtension();
3 $image->move("storage/photo/",$image_name)
4
5 //pour l'enregistrer en bd
6
7 $exemple->image = "storage/photo/{$image_name}";
8
9 //dans le fichier blade
10
11 <img src="{{asset($exemple->image)}}">

tu n'as plus besoin de mettre public mais il faut d'abord effectuer la commande php artisan storage:link c'est un peut brute mais sa marche

Confirmer la suppression

Êtes-vous sûr de vouloir supprimer cette réponse ? Cette action est irréversible.

Il faut Se connecter ou Créer un compte pour participer à cette conversation.

Confirmer la suppression

Êtes-vous sûr de vouloir supprimer ce sujet ? Cette action est irréversible.