2017-01-02 5 views

답변

1

docs에서는 fileFilter를 사용하여 파일 업로드를 건너 뛸 수 있다고 설명합니다.
의 FileFilter (https://github.com/expressjs/multer#filefilter) 나는이 file 전달한다고 가정 할 워드 프로세서

Set this to a function to control which files should be uploaded and which should be skipped. The function should look like this: 

function fileFilter (req, file, cb) { 

    // The function should call `cb` with a boolean 
    // to indicate if the file should be accepted 

    // To reject this file pass `false`, like so: 
    cb(null, false) 

    // To accept the file pass `true`, like so: 
    cb(null, true) 

    // You can always pass an error if something goes wrong: 
    cb(new Error('I don\'t have a clue!')) 

} 

는 속성 mimetype (https://github.com/expressjs/multer#api)가 있습니다. 당신이 건너 뛰고 싶다면 이것은 결정을위한 좋은 힌트 일 수 있습니다.

편집 : 이 GH 문제 (https://github.com/expressjs/multer/issues/114#issuecomment-231591339는) 사용에 대한 좋은 예를 포함한다. 파일 확장명을 쉽게 볼 수있을뿐 아니라 이름을 쉽게 바꿀 수 있고 MIME 형식을 고려해야하므로 중요합니다. 힌트에 대한

const path = require('path'); 

multer({ 
    fileFilter: function (req, file, cb) { 

    var filetypes = /jpeg|jpg/; 
    var mimetype = filetypes.test(file.mimetype); 
    var extname = filetypes.test(path.extname(file.originalname).toLowerCase()); 

    if (mimetype && extname) { 
     return cb(null, true); 
    } 
    cb("Error: File upload only supports the following filetypes - " + filetypes); 
    } 
}); 

HTH

+0

감사합니다! 그러나 그것은 나의 경우와 관련된 예제를 가진 완전한 답이 아니다 :) – Coder1000

+0

나는 이것이 매우 잘 맞다고 생각한다. 링크 된 github 문제는 동일한 함수 (fileFilter)를 사용합니다. 또한 파일 이름 확장자가 잘못 될 수 있으므로 mime-type을 확인하는 것이 좋습니다. 투표를 이해하지 마십시오. 여분의 if 절이 문제가되지 않을 것이라고 생각했습니다. https://github.com/expressjs/multer/issues/114#issuecomment-231591339 :-) – silverfighter

+0

답장에 이것을 포함시키지 않았습니까?/답을 수정하는 것은 어떻습니까? :) – Coder1000