J'ai créé une vue supplémentaire qui peut télécharger plusieurs fichiers en même temps. Lorsqu'un fichier est téléchargé, le chemin du fichier sera affiché dans un format similaire à « Drawings/PartNumber/Type/filename.extension ». Je souhaite vérifier dans le dossier « Dessins » pour m'assurer qu'aucun fichier n'a la même extension. Comment y parvenir ?
Ma fonction est :
fonction publique AddNewPart(Request $request) { if (array_key_exists('DrawingFile',$data)) { foreach($request->file('DrawingFile') as $key=>$file) { si ($data['fileupload_ID'][$key]==NULL) { $extension=$file->getClientOriginalExtension(); $file_name2 = $file->getClientOriginalName(); $filepath='Drawings/'.$data['PartNumber'].'/'.$data['Type'][$key].'/'.$file_name2; $file->move(public_path('Drawings/'.$data['PartNumber'].'/'.$data['Type'][$key].'/'), $file_name2); $DocumentData2=array('Type'=>$data['Type'][$key],'fcontent'=>$file_name2,'condpartno'=>$data['PartNumber'],'fname'= >$chemin du fichier, 'DrawingNo'=>$data['DrawingNo'][$key],'DocumentType'=>$data['Type'][$key]); DB::table('fileupload')->insert($DocumentData2); } } } }
Si vous souhaitez empêcher le même fichier d'être téléchargé plusieurs fois dans différents sous-répertoires, vous pouvez profiter du système de fichiers de Laravel et vérifier si le fichier existe avant d'essayer de le télécharger.
La façade Fichier fournit une méthode existe que vous pouvez utiliser pour vérifier si un fichier dans un chemin donné existe.
Voici comment vous pouvez le modifier :
Le code ci-dessus ne sera téléchargé que si le fichier n'existe pas dans le répertoire spécifié. Si le fichier existe déjà, une réponse d'erreur avec le message « Le fichier existe déjà » est renvoyée.
Une chose à noter est le comportement de la méthode getClientOriginalName(). Il renverra le nom d'origine du fichier de la machine client, ce qui peut causer des problèmes si les fichiers de différents clients portent le même nom. Si cela pose un problème, envisagez de mettre en œuvre une convention de dénomination unique lors du téléchargement.
N'oubliez pas non plus d'importer les classes nécessaires en haut du fichier et de prendre soin de gérer tout problème potentiel tel que des champs obligatoires manquants ou des échecs d'insertion dans la base de données.