📜  laravel 存储获取文件路径 - PHP (1)

📅  最后修改于: 2023-12-03 15:17:14.525000             🧑  作者: Mango

Laravel 存储获取文件路径 - PHP

在 Laravel 中,我们可以使用存储功能来处理文件的上传、存储和获取。存储功能提供了简单而强大的 API 来管理应用程序中的文件。

本文将介绍如何使用 Laravel 存储功能来获取文件的路径。

配置

在开始之前,我们需要先进行一些配置。

首先,打开 .env 文件,设置 FILESYSTEM_DRIVER 值为 public。这将告诉 Laravel 使用公共存储驱动。

FILESYSTEM_DRIVER=public

接下来,打开 config/filesystems.php 文件。在 disks 数组中,添加一个新的磁盘配置。

'disks' => [
    // ...
    'public' => [
        'driver' => 'local',
        'root' => public_path('storage'),
        'url' => env('APP_URL').'/storage',
        'visibility' => 'public',
    ],
],

上面的配置将定义一个名为 public 的磁盘,使用 local 驱动来保存文件。我们还指定了存储文件的根目录和文件访问的 URL。

文件上传

在我们获取文件路径之前,首先需要将文件上传到存储驱动。

在 Laravel 中,处理文件上传非常简单。我们只需使用 store 方法来保存上传的文件。

use Illuminate\Support\Facades\Storage;
use Illuminate\Http\Request;

public function uploadFile(Request $request)
{
    if ($request->hasFile('file')) {
        $path = $request->file('file')->store('uploads', 'public');
        // 存储的路径将类似于 'public/uploads/filename.ext'

        // 以下是其它处理上传文件的逻辑...
    }
}

上述代码将上传文件到 public/uploads 目录下,并返回文件的存储路径。文件路径会自动添加 public 前缀,以匹配 public 磁盘的配置。

获取文件路径

一旦文件被上传到存储驱动,我们可以使用存储功能的 url 方法来获取文件的公共访问路径。

use Illuminate\Support\Facades\Storage;

public function getFileUrl($filename)
{
    $url = Storage::url($filename);
    return $url;
}

上述代码中的 $filename 参数应为已存储文件的路径,例如 uploads/filename.exturl 方法将返回文件的公共可访问 URL,如 http://example.com/storage/uploads/filename.ext

总结

使用 Laravel 存储功能,我们可以轻松地处理文件的上传、存储和获取。配置存储驱动后,我们可以使用 store 方法将文件上传到指定目录,并使用 url 方法来获取文件的公共访问路径。

希望本文能够帮助你了解如何在 Laravel 中获取存储文件的路径。如有疑问,请随时提问。

参考文档:Laravel - File Storage