tj_lamelo
asked

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
posted

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

Confirm deletion

Are you sure you want to delete this reply? This action is irreversible.

jiordiviera
posted

Avec des captures d'écrans

Confirm deletion

Are you sure you want to delete this reply? This action is irreversible.

tj_lamelo
posted

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}
Confirm deletion

Are you sure you want to delete this reply? This action is irreversible.

tncs
tncs 70 XP
posted

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.

Confirm deletion

Are you sure you want to delete this reply? This action is irreversible.

tj_lamelo
posted

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

Confirm deletion

Are you sure you want to delete this reply? This action is irreversible.

darwin_nathan
posted

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)?

Confirm deletion

Are you sure you want to delete this reply? This action is irreversible.

tncs
tncs 70 XP
posted

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

Confirm deletion

Are you sure you want to delete this reply? This action is irreversible.

darwin_nathan
posted

@tj_lamelo est ce que c'est bon ??

Confirm deletion

Are you sure you want to delete this reply? This action is irreversible.

stevymarlino
posted

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-...

Confirm deletion

Are you sure you want to delete this reply? This action is irreversible.

stevymarlino
posted

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

Confirm deletion

Are you sure you want to delete this reply? This action is irreversible.

stephen2304
posted

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}
Confirm deletion

Are you sure you want to delete this reply? This action is irreversible.

DidaceEkotto
posted
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

Confirm deletion

Are you sure you want to delete this reply? This action is irreversible.

You need Log in or Create an account to join the conversation.

Confirm deletion

Are you sure you want to delete this thread? This action is irreversible.