【问题标题】:Laravel: How to create a folder in public path dynamically when a file is uploaded?Laravel:上传文件时如何在公共路径中动态创建文件夹?
【发布时间】:2020-11-15 08:14:19
【问题描述】:

我创建了一个函数,它将文件路径存储在数据库中,并将文件存储在 public/uploads/release 文件夹中。这是我的控制器:

$reference = $request->get('reference');
    $uploads = array();
    if($files = $request->file('uploads'))
    {  
    foreach ($files as $file) {
        $name = $file->getClientOriginalName();
        $file->move('uploads/release', $name);
        $uploads[] = $name;
    }

这里我将文件存储在 public/uploads/release 文件夹中,但是现在我想在每次上传文件时动态创建一个文件夹,并且该文件夹必须是 $reference 变量中的值。 例如:参考是 'ABC123'。然后文件必须自动存储在 public/uploads/release/ABC123 文件夹中。

【问题讨论】:

    标签: php laravel file eloquent directory


    【解决方案1】:

    你可以在 laravel 中使用文件类

    use Illuminate\Support\Facades\File;
    
    $path = public_path().'/uploads/release/'.$request->get('reference');
    if (! File::exists($path)) {
        File::makeDirectory($path);
    }
    

    【讨论】:

      【解决方案2】:

      Storage::makeDirectory(public_path('uploads/release/'.$reference));

      https://laravel.com/docs/7.x/filesystem#directories

      或者你也可以这样做

      $file->move(public_path('uploads/release/'.$reference), $name);

      【讨论】:

        猜你喜欢
        • 2013-06-05
        • 2012-04-22
        • 2019-01-27
        • 2018-05-03
        • 2021-11-02
        • 2023-04-04
        • 2020-02-09
        • 2013-10-13
        相关资源
        最近更新 更多