2
votes

Comment télécharger un fichier et l'enregistrer avec le nom d'origine dans le dossier de stockage

Je veux enregistrer le fichier téléchargé avec le nom d'origine. Que dois-je ajouter à ce code?

Voici mon code

public function store(Request $request)
{
    if($request->hasFile('image'))
    {
        $file = $request->file('image');
        $originalname = $file->getClientOriginalName();
        $filename =$originalname;
        $file->move('public/', $filename);
    }


6 commentaires

laravel.com/docs/5.5/requests#storing-uploaded-files


comment l'utiliser? ça me donne une erreur à chaque fois que je l'essaye


Vous avez vérifié les autorisations du dossier? Quelle erreur serait-ce? Pouvez-vous modifier votre question et y coller l'erreur?


"Le fichier" C: \ xampp \ tmp \ phpD2B2.tmp "n'existe pas" lorsque j'ajoute $ path = $ request-> image-> store ($ originalname);


$ path = $ request-> photo-> store ('images'); ... " La méthode store accepte le chemin où le fichier doit être stocké par rapport au répertoire racine configuré du système de fichiers . "Est-ce que $ originalname est un chemin? Sonne plus comme un nom de fichier complet. " Si vous ne souhaitez pas qu'un nom de fichier soit généré automatiquement, vous pouvez utiliser la méthode storeAs, qui accepte le chemin, le nom de fichier et le nom du disque comme arguments "


cela me donne l'erreur "Le pilote [] n'est pas pris en charge." quand j'ajoute $ path = $ request-> image-> storeAs ('public', $ filename, 'local');


3 Réponses :


1
votes

Vous pouvez utiliser la méthode storeAs , qui reçoit le chemin, le nom du fichier et le disque (facultatif) comme arguments:

public function store(Request $request)
{
    if($request->hasFile('image'))
    {
        $file = $request->file('image');
        $originalname = $file->getClientOriginalName();
        $path = $file->storeAs('public/', $originalname);
    }
}


1 commentaires

Erreur "Appel à une fonction membre hashName () sur la chaîne"



0
votes

Essayez ceci:

if($request->hasFile('image'))
{
    $file = $request->file('image');
    $originalname = $file->getClientOriginalName();
    $img = Image::make($file->getRealPath());
    $img->stream();
    Storage::disk('local')->put('images/'.$originalname, $img, 'public');
}


3 commentaires

Erreur "Classe 'App \ Http \ Controllers \ Image' introuvable"


Veuillez ajouter use Image; au-dessus de votre contrôleur


Dans votre app.php Ajoutez ceci dans vos alias: "'Image' => Intervention \ Image \ Facades \ Image :: class," et dans vos fournisseurs "Intervention \ Image \ ImageServiceProvider :: class", n'oubliez pas de faire php artisan config: cache après cela.



0
votes

Importez des fichiers avec le nom de fichier d'origine.

if ($request->hasFile('image')) {
    $file_path = $request->file('image')->storeAs('dir_name', request()->file('image')->getClientOriginalName(), 'optional_disk_name');
}

// pass the disk name as the third argument to the storeAs method: ex. local,s3,etc


0 commentaires