2014-05-14 1 views
0

Express.js 서버에 업로드하는 파일의 유형을 결정해야합니다. 확장명을 확인하거나 다음과 같이 확인하는 방법이 있습니다.Express.js 서버의 올바른 파일 유형을 결정하십시오.

if(req.files.file.type !== "application/pdf") { 
     res.set('Content-Type', 'text/html'); 
     return res.send({errormessage: "Only PDF accepted."}); 
    } 

여기서 문제는 클라이언트 쪽에서 파일 확장명을 변경하면이 확인을 쉽게 속일 수 있다는 것입니다. 나는 수표 만 익스프레스 파일 시스템에 파일을 다운로드하는 것이라고 생각한다. node.js에 mime 라이브러리를 사용해 보았습니다.하지만 content-type에 의존하기 때문에 쉽게 바보가됩니다. 나는 다른 도서관을 보았다 : https://github.com/mscdex/mmmagic

그러나 그것은 비 Windows 것 같다. 내 서버는 Windows 2012 컴퓨터입니다.

도움을 주시면 감사하겠습니다.

답변

3

mmmagic은 노드가 지원하는 모든 플랫폼에서 작동해야합니다. Windows에서 인 경우에, 당신은 비록 적절한 빌드 환경을 가지고 있습니다

  • 파이썬 2.7.x
  • 비주얼 스튜디오/C++ 2010+ (당신은 Express 버전을 사용하는 경우, 당신은 Windows를 설치해야합니다 64 비트 용으로 컴파일하는 경우 SDK). VS 2012 이상을 사용하는 경우 "Windows 데스크톱 용"버전을 다운로드하십시오.
관련 문제