J'ai des images dans mon dossier public
(PAS DE STOCKAGE) :
Et je veux mettre tous ces fichiers dans une liste et pour chacun, je fais quelque chose ... Comment puis je faire ça?
4 Réponses :
Vous pouvez le faire en une seule ligne:
use File; $files = File::files(public_path()); // If you would like to retrieve a list of // all files within a given directory including all sub-directories $files = File::allFiles(public_path());
Pour plus d'informations, consultez la documentation .
Modifier : la documentation est déroutante. Il semble que vous deviez utiliser la façade File
à la place. Je vais enquêter un peu plus, mais cela semble fonctionner maintenant.
De plus, le résultat sera un tableau de SplFileInfo objets.
mais je veux dire public dans mon script pas chemin de stockage :)
J'ai modifié ma réponse.
mais comment puis-je obtenir, juste le nom de mon fichier?
Vous feriez une boucle foreach puis pour obtenir le nom du fichier, vous pouvez simplement faire $ file-> getFilename ();
Ok, j'ai utilisé getFileName ()
- Merci :)
Résolu! J'ai utilisé cette fonction et ça marche:
// GET PUBLIC FOLDER FILES (NAME) if ($handle = opendir(public_path('img'))) { while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != "..") { echo $entry."<br>"; // NAME OF THE FILE } } closedir($handle); }
Merci @MyLibary :)
Si vous parlez du dossier public qui n'est pas dans le dossier STORAGE , mais, si vous souhaitez gérer strong> ceci avec Laravel Storage (Laravel Filesystem), Vous pouvez définir ce dossier comme un disque pour le système de fichiers et l'utiliser comme suit. Dans la configuration du système de fichiers Et puis vous pouvez utiliser ces commandes dans votre application: ou pour obtenir la liste des fichiers: Plus de détails sur Laravel Storage (Laravel Filesystem) sont ici:
https://laravel.com/docs/5.8/filesystem Remarque : Si vous avez changé de dossier public, vous pouvez utiliser base_path () dans la définition du disque avec le chemin relatif comme suit ( Sinon, ne l'utilisez pas ): config / filesystems.php
, disques
partie ajoutez ce code: 'disks' => [
...
'public_site' => [
'driver' => 'local',
'root' => base_path('../../public'),
'visibility' => 'public',
],
...
],
$files = Storage::files('img');
$files = Storage::allFiles('img');
$contents = Storage::get('img/file.jpg');
Solution 1 pour Laravel
public function index() { $path = public_path('demo'); $files = scandir($path); dd($files); }
Solution 2 pour Laravel
public function index() { $path = public_path('test'); $files = File::files($path); dd($files); }
Solution pour PHP
public function index() { $path = public_path('test'); $files = File::allFiles($path); dd($files); }
Copie possible de Obtenir les noms de tous les fichiers dans un annuaire avec PHP
Ahh! Mais j'utilise laravel? pouvez-vous mettre votre réponse si vous le souhaitez :)
Vous avez une réponse de Mozammil