有没有办法可以使用 laravel 存储磁盘获取 splfileinfo 类型的对象?我需要一种将包装文件(存储在本地或 s3 服务上)的实例发送到AnalyzeImageService
.
我认为 splfileinfo 的瞬间会很棒,因为它具有我的服务所需的所有方法(getSize 等)。
问题:我怎样才能得到一个 \splfileinfo 对象来包装一个给定磁盘的文件来自 laravel。
你好用户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