2014-10-29 3 views
0

은 그래서 문서파일 입력 유성 CFS

Template.myForm.events({ 
'change .myFileInput': function(event, template) { 
FS.Utility.eachFile(event, function(file) { 
Images.insert(file, function (err, fileObj) { 
//Inserted new doc with ID fileObj._id, and kicked off the data upload using HTTP 
}); 
}); 
} 
}); 

에이 코드를 참조하지만 난 "myFileInptu"를 클릭하면 파일이 inmediatly 업로드 싶지 않는, 내가 (입력)에서 그 값을 저장할하고, 최근에 버튼으로 삽입하십시오. 이렇게하려면 몇 가지 방법이 있습니까?

또한 파일없이 FSCollection을 업로드 할 수있는 방법이 있습니까? 단지 나쁜 영어 희망 당신은 당신이 원하는 것을 달성하는 나에게

답변

0

을 도울 수

죄송 메타 데이터 change .myFileInput에서 submit .myForm로 전환 이벤트의 사소한 변화, 즉 필요합니다. 제출 이벤트에서 파일 입력을 선택하고 수동으로 FS 파일로 저장하여 파일 값을 가져올 수 있습니다. 예 :

'submit .myForm': function (event, template) { 
    event.preventDefault(); 
    var file = template.find('#input').files[0]; 

    file = new FS.File(file); 

    // set metadata 
    file.metadata = { 'caption': 'wow' }; 

    Images.insert(file, function (error, file) { 
    if (!error) 
     // do something with file._id 
    }); 
} 

autoFS를 CollectionFS와 함께 사용하는 경우 해당 코드를 onSubmit 후크에 넣을 수 있습니다. 질문에 제공 한 루프도 작동합니다.

두 번째 질문에 대해서는 FS.Files가 크기없이 생성 될 수 있다고 생각하지 않습니다. 따라서 추측 할 수 없겠지만 메타 데이터를 파일에 첨부하지 않고 저장할 수는 없습니다. 어쨌든, 메타 데이터가 으로되어있을 때 메타 데이터를 저장하는 것은 당연히 반 직관적 인 것처럼 보입니다. 관련 이미지는입니다. 이를 위해 별도의 컬렉션을 사용하는 것이 좋습니다.

도움이 되길 바랍니다.

+0

대단히 반갑습니다! 다행히 도울 수있어. – mark