Vous souhaitez nous soutenir ? Devenez sponsor de l'association sur notre page Github
Forum

Impossible de sauvegarder un fichier dans une fonction "saving" d'un model

klkmva avatar
Publié le 27 décembre 2025
Par klkmva

Salut à tous

J'ai créé un composant permettant d'associer une image à différents objet (livre, conférencier, conférence, ...).

Pour que ce composant fonctionne je dois affecter une valeur au champ "image" du model avant de sauvegarder l'enregistrement. Je passe donc par la static function saving du model. Si la valeur du champ image est une chaîne codée en Base64 (résultat d'un téléchargement, d'un paste ou d'un drop), je veux sauvegarder le fichier dans /public/storage/images/TypeItem/ puis affecter au champ image l'url de ce fichier.

Que je passe par un simple "fopen() fwrite() fclose()" ou que j'utilise Facade/Storage::put() le résultat est le même : acces denied.

Les droits sur le répertoire de destination sont "Tout le monde => contrôle total". Je ne comprend pas à quel niveau se situe le problème.

J'utilise Herd (donc nginx) pour le développement, mais le résultat est le même avec Apache. Ci-dessous le résultat de la commande "php artisan about"

Environment ..............................................................................................................................
Application Name ................................................................................................................... atdc4
Laravel Version .................................................................................................................. 12.42.0
PHP Version ........................................................................................................................ 8.3.6
Composer Version ................................................................................................................... 2.9.2
Environment ........................................................................................................................ local
Debug Mode ....................................................................................................................... ENABLED
URL ........................................................................................................................... atdc4.test
Maintenance Mode ..................................................................................................................... OFF
Timezone ............................................................................................................................. UTC
Locale ................................................................................................................................ fr

Cache ....................................................................................................................................
Config ............................................................................................................................ CACHED
Events ....................................................................................................................... NOT CACHED
Routes ........................................................................................................................ NOT CACHED
Views ............................................................................................................................. CACHED

Drivers ..................................................................................................................................
Broadcasting ......................................................................................................................... log
Cache ........................................................................................................................... database
Database ......................................................................................................................... mariadb
Logs ...................................................................................................................... stack / single
Mail ................................................................................................................................. log
Queue ........................................................................................................................... database
Session ......................................................................................................................... database

Storage ..................................................................................................................................
C:.....\atdc4\public\storage ............................................................................ LINKED

Filament .................................................................................................................................
Blade Icons ....................................................................................................................... CACHED
Packages ........................................... filament, forms, notifications, support, tables, actions, infolists, schemas, widgets
Panel Components .............................................................................................................. NOT CACHED
Version ........................................................................................................................... v4.3.1
Views ...................................................................................................................... NOT PUBLISHED

Livewire .................................................................................................................................
Livewire .......................................................................................................................... v3.7.1

Je suis preneur d'une explication et d'une solution. Merci d'avance

Aucune réponse