2017-09-12 16 views
0

hereとよく似ていますが、S3ファイルを使用していないので、そのリンクの情報は多少日付が入ります)。Keystonejsのバックエンドにアップロードされた画像を表示する方法

私の質問は、Keystonejsの管理者のバックエンドでアップロードされた画像のプレビューを取得する方法です。上記のリンクで提案されているように、キーストーンファイルを編集するのはハッキーな修正のようですが、他のオプションがあるかどうかは疑問です。

S3ファイルのサポートを追加しましたが、Types.CloudinaryImageがサポートされていますが、アップロードされた画像はKeystoneが画像ではなく任意のファイルとして扱うため、アップロードされた画像のプレビューを取得できません。

Screenshot:あなたが見ることができるように、キーストーンはファイル名(赤で強調表示)を表示するだけです。次のように

モデルが設定されています

var keystone = require('keystone'); 
var Types = keystone.Field.Types; 

/** 
* Image Upload Model 
* ================== 
* A database model for uploading images to the local file system 
*/ 

var ImageUpload = new keystone.List('ImageUpload'); 

var myStorage = new keystone.Storage({ 
     adapter: keystone.Storage.Adapters.FS, 
     fs: { 
       path: keystone.expandPath('./public/uploads/images'), 
       publicPath: '/public/uploads/images', 
     } 
}); 

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


ImageUpload.defaultColumns = 'url, createdTimeStamp, image'; 
ImageUpload.register(); 

答えて

0

を限り、私はそれの唯一の方法を取るにつれて - 自分でこれを実装することです。 それは私の外見と同じくらい恐ろしいことではありませんが、あなたはそれを行うために多くの時間を費やすべきです。

管理ページには現在どのようなファイルタイプが表示されているかを調べる必要があります。そのためには、既にKeystoneJSで提供されている管理ページのテンプレートを参照する必要があります(パス:node_modules \ keystone \ admin \ server \ templates )

その後はあなたが(パスを見たいと思うかもしれません:node_modules \キーストーン\フィールド) あなたはTYPESサブフォルダに興味があるかもしれない - が、原因別のフィールドタイプは

ルールだからあなたの目標は、対応するフィールドの説明を見つけることです(あなたのImageUpload FileSystemモデル用)またはimgタグを使って新しい画像を作成してURLから写真を表示

ファイルタイプは、\ node_modules \ keystone \ fields \ types \ fileを探しているものだと思います。

関連する問題