从 IVirtualImageProvider 获取文件

Get a file from IVirtualImageProvider

我有一个自定义插件,用于通过 LDAP 提供图像 IPlugin IVirtualImageProvider 现在我正在执行将用户从 LDAP 导入我们自己的系统的任务,因此我需要导入这些图像,我想知道是否有任何方法可以使用我之前创建的插件来导入这些图像,也许类似

ImageResizer.ImageJob i = new ImageResizer.ImageJob("http://host/ad/A68986", "~/uploads/<guid>.<ext>", new ImageResizer.ResizeSettings(
              "width=2000;height=2000;format=jpg;mode=max"));

但是我的 LDAP 插件 ImageResizer API

的第一个参数(源)将是 "resolved"

编辑: 我发现这是可能的,因为源可以是 IVirtualFile,这意味着我事先知道要创建哪个文件(对于我自己的 ldap)它很高兴通过 url 并以某种方式获得正确的 IVirtualFile

是的,ImageJob 使用已安装的 IVirtualImageProviders 解析任何 'app-relative virtual paths'。当然,这样的路径必须以“~/”开头,并匹配您设计的路径前缀和语法。

在你的情况下,这可能看起来像

var i = new ImageResizer.ImageJob("~/ad/A68986", "~/uploads/<guid>.<ext>", 
new ImageResizer.ResizeSettings("width=2000;height=2000;format=jpg;mode=max"));

如果您只需要原始数据,也可以调用 Config.Current.Pipeline.GetFile 来获取基于路径的 IVirtualFile 引用。