web-dev-qa-db-fra.com

Comment changer le chemin de stockage dans laravel 5.3 en public?

Dans laravel 5.3, si je télécharge un fichier à partir d'un formulaire, il sera stocké dans son propre répertoire de stockage. Ensuite, je devrais créer un symlink vers ce chemin de stockage dans le chemin public.

Je ne peux pas utiliser la création de liens symboliques sur mon système en raison de la limitation. Comment puis-je télécharger des fichiers directement sur public/uploads au lieu de storage/app/uploads?

J'ai essayé de définir le chemin dans AppServiceProvider.php mais ça ne marche pas.

public function register()
{
    //not working:
    $this->app->useStoragePath( $this->app->basePath() .  "/upload");

    //also not working:
    // $this->app->bind('path.storage', function () {
    // return $this->app->basePath() . '/upload';
    // });

}

par "ne fonctionne pas", je veux dire qu'il est toujours en cours de téléchargement dans le répertoire de stockage par défaut. J'ai également vidé le cache.

Voici la partie téléchargement (utilisée dans un contrôleur):

        $request->image->storeAs("uploads", "uploaded_image.jpg");

Merci pour tout indice. :)

12
MilMike

Dans Laravel 5 vous devez maintenant le faire dans config/filesystems.php. Vous pouvez ajouter un nouveau disque comme ceci:

'disks' => [

    'uploads' => [
          'driver' => 'local',
          'root'   => public_path(), // previously storage_path();
    ],

]

puis procédez comme suit pour l'utiliser:

Storage::disk('uploads')->put('filename', $file_content);
21
Geoherna