如何在 laravel 中创建文件夹

Posted

技术标签:

【中文标题】如何在 laravel 中创建文件夹【英文标题】:How to create a folder in laravel 【发布时间】:2020-08-10 01:02:52 【问题描述】:

laravel 版本 6.18.8

我用这一行创建了一个目录,但它说 Method Illuminate\Filesystem\Filesystem::mkdir 不存在。

$newDirectory = public_path() . 'img/reviews/' . Str::slug($request->title,'-');
File::mkdir($newDirectory);

我还使用了 ma​​keDirectory(),但也无法正常工作..

请帮忙用 laravel 创建一个目录

【问题讨论】:

你试过composer dump-autoload吗?您也可以使用Storage::makeDirectory($directory); 创建目录 composer dump-autoload Storage::makeDirectory($directory); 这两个命令必须使用或转储文件包的负载? 这个不行 composer dump-autoload 是重新生成您的自动加载器文件。一个快速的解决方法是删除您的供应商文件夹并再次运行composer install 并生成所有供应商。 这能回答你的问题吗? create folder in laravel 【参考方案1】:

你可以使用phpmkdir函数

$dirPath = public_path('img/reviews/' . Str::slug($request->title,'-')); 
if (!file_exists($dirPath)) 
    mkdir($dirPath, 0777, true);

见How to create directory if not exists in Laravel 7.x and 6.x?

【讨论】:

这会起作用,但不能解决 OP 的问题 嗯,在幕后 Laravel 也使用了 php 原生函数。对吗? 是的,它确实在幕后使用了它,但是 Laravel 通过Filesystem 提供了太多的功能,如果它被破坏了,那么整个应用程序可能会破坏。 我猜 OP 输入错误或导入了File Facade 你能帮我解决另一个话题吗?我将此代码用于单次上传。 if (request()->has('image')) $photo = request()->file('image'); $image = Image::make($request->image); $image->save(public_path('../../img/gallery/gallery-images/' . DB::getPdo()->lastInsertId() . '.png')); DB::table('galleries') ->where('id', '=', DB::getPdo()->lastInsertId()) ->update([ 'image' => DB::getPdo()- >lastInsertId() . '.png', ]); 但我如何在多次上传中使用它

以上是关于如何在 laravel 中创建文件夹的主要内容,如果未能解决你的问题,请参考以下文章

如何从迁移中创建 Laravel 模型?

如何使用一个命令在 laravel 中创建所有三个文件(控制器、模型和数据库迁移文件)

如何在 laravel 5.6 中创建自定义帮助文件?

laravel中创建Events和Listeners

如何在 Laravel 中创建一个 Trait

在laravel应用程序中创建动态元标记