0

有没有办法可以使用 laravel 存储磁盘获取 splfileinfo 类型的对象?我需要一种将包装文件(存储在本地或 s3 服务上)的实例发送到AnalyzeImageService.

我认为 splfileinfo 的瞬间会很棒,因为它具有我的服务所需的所有方法(getSize 等)。

问题:我怎样才能得到一个 \splfileinfo 对象来包装一个给定磁盘的文件来自 laravel。

4

1 回答 1

-1

你好用户2373229,

为了设置自定义文件系统,您需要创建一个服务提供者。在提供者的启动方法中,您可以使用 Storage 门面的扩展方法来定义自定义驱动程序。

<?php

namespace App\Providers;

use Storage;
use \SplFileInfo as SplFileInfo;
use Illuminate\Support\ServiceProvider;


class SplFileInfoServiceProvider extends ServiceProvider
{
/**
 * Perform post-registration booting of services.
 *
 * @return void
 */
public function boot()
{
    Storage::extend('splfileinfo', function () {

       return new SplFileInfo;
    });
}

/**
 * Register bindings in the container.
 *
 * @return void
 */
public function register()
{
    //
}
}

一旦你创建了服务提供者来注册扩展,你可以在你的 config/filesystems.php 配置文件中使用 splfileinfo 驱动。

您可以参考文档:https ://laravel.com/docs/5.3/filesystem#custom-filesystems

于 2017-01-03T20:34:11.727 回答