从SilverStripe的路径创建一个Image实例


Create an instance of Image from a path in SilverStripe

假设我们有路径/assets/no-thumbnail.png,如何将其加载到SilverStripe的Image类中?我能做到吗?

我问的原因是因为我想要在Image类中可用的方法。

是的,对于存在于/assets文件夹中的文件来说,这是非常直接的。虽然对于其他位置的文件可能也可以实现,但我将描述的方法将把该文件与通过CMS上传的任何其他文件区别对待。

首先,我们需要确保这个映像有一个DB记录。幸运的是,如果需要以编程方式执行此操作,可以像调用Filesystem::sync()一样简单。如果没有,在CMS的文件选项卡中有一个"同步"按钮。

一旦完成,您可以简单地调用File::get()->filter('Name', 'no-thumbnail.png')->first()(甚至只是File::find('no-thumbnail.png'))来获得"适当的"Image对象,允许您调用Image类的任何实例方法。