2017-09-12 3 views
0

here과 매우 유사하지만 S3 파일을 사용하지 않고 있으며 해당 링크의 정보가 다소 날짜가 있습니다 (위 질문에서 링크 된 github 문제가 마감 된 이후 업데이트되지 않았습니다).).Keystonejs 백엔드에서 업로드 된 이미지를 표시하는 방법

내 질문은 Keystonejs의 관리자 백엔드에서 업로드 된 이미지의 미리보기를 얻는 방법에 관한 것입니다. 위의 링크에서 제안한대로 키스톤 파일을 편집하는 것이 해커 픽스 인 것처럼 보이지만 다른 옵션이 있는지 궁금합니다.

S3 파일에 대한 지원이 추가되었지만 Types.CloudinaryImage이 지원되지만 키스톤이이를 이미지가 아닌 임의의 파일로 처리하기 때문에 업로드 된 이미지를 미리 볼 수는 없습니다.

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) 당신은 유형 하위 폴더에 관심이있을 수 있습니다 -이 서로 다른 필드 유형의 원인은

그래서 당신의 목표는 해당 필드의 설명을 찾을 수 있습니다 규칙 (ImageUpload FileSystem 모델 용) 또는 img 태그가있는 새 이미지를 만들어서 URL에서 그림을 표시하십시오

파일 유형은 \ node_modules \ keystone \ fields \ types \ file입니다.