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); }
3 Réponses :
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); } }
Erreur "Appel à une fonction membre hashName () sur la chaîne"
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'); }
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.
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
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');