Keystonejs 4.0文件系统存储适配器图像预览

时间:2016-11-30 02:43:49

标签: keystonejs

如何在管理界面中获取Types.File字段的图像预览。

它表示" FS adapter supports所有默认的Keystone文件架构字段。它还支持并启用文件名路径(必需)。"但是,当我尝试(doc)时:

format: function(item, file){
        return '<img src="/files/'+file.filename+'" style="max-width: 300px">'
    }

UI中没有任何内容

3 个答案:

答案 0 :(得分:1)

据我从Keystone GitHub可以看出,format函数已经工作了一段时间。我不知道Keystone 4.0中是否存在该函数。参考here

答案 1 :(得分:1)

如果您需要立即测试,可以自行分配当前测试版并自行修补功能。

您可以在https://github.com/keystonejs/keystone/blob/v4.0.0-beta.5/fields/types/file/FileType.js#L81

找到它 但是,对我来说似乎并不合适。我希望他们在发布4.0之前修复它,以及丢失的文件阵列类型。

答案 2 :(得分:1)

现在可以在keystone的最新主分支中进行图像预览(参见https://github.com/keystonejs/keystone/pull/4509)。目前您需要依赖于keystone的git版本,因此请将其放在package.json并运行npm install

  "keystone": "https://github.com/keystonejs/keystone.git"

在您的模型中,在相关图片字段中指定thumb: true。您还需要架构中的url属性。例如:

const storage = new keystone.Storage({
    adapter: keystone.Storage.Adapters.FS,
    fs: {
        path: keystone.expandPath('./uploads/images'), 
        publicPath: '/images/'
    },
    schema: {
        url: true,
    }
})

ImageUpload.add({
    name: { type: Types.Key, index: true },
    image: {
        type: Types.File,
        storage: myStorage,
        thumb: true
    },
    createdTimeStamp: { type: String }
});

管理员界面现在应该显示图片的小预览及其链接。