2011-08-11 7 views
0

내 응용 프로그램에서 base64string에 다른 파일을받습니다. 해당 base64String을받은 후 응용 프로그램에서 을 원래 형식으로 변환해야합니다. 이러한 파일은 pdf, txt, jpeg 이미지, bmp 이미지, gif 이미지 또는 png 이미지 형식이 될 수 있습니다. 해당 파일을 해당 형식으로 변환하기 위해이 파일의 형식을 어떻게 알 수 있습니까? base64string이이 정보를 제공하는 방법이 있습니까? 도움이 될 것입니다. '다른 파일 형식 저장

답변

1

base64 데이터에는 파일 데이터 자체 만 포함되며 파일 이름/확장자를 포함한 메타 데이터는 포함되어 있지 않습니다. 파일 형식을 찾으려고 디코딩 된 base64 데이터의 처음 몇 바이트를 구문 분석하려고 시도 할 수 있지만 서비스가 일부 HTTP 헤더 (예 : Content-Disposition)에이 정보를 추가하는 것이 더 쉬운 방법입니다.

1

난 그저 base64string에서 이진 형식으로 변환하고 디스크에 저장해야 할 것 같아요. 사용자가 관련 프로그램을 사용하여 열 수 있도록 올바른 파일 확장자 또는 파일 이름을 완성하기 만하면됩니다.

0

파일 형식을 얻는 유일한 확실한 방법은 파일과 관련된 메타 데이터를 사용하는 것입니다. 이 경우 사용할 수없는 경우 해결 방법은 파일의 처음 몇 바이트를 읽는 것입니다. 많은 일반적인 형식에서는 해당 형식의 파일이 "마법 번호"라고하는 일련의 바이트로 시작해야합니다.

Wikipedia article은 PDF, JPG, PNG 및 GIF 형식에 대한 숫자를 제공합니다. 일반적으로 BMP 파일은 상수 0x42 0x4D (*)로 시작합니다. 텍스트 파일에는 내용 만 포함되어 있으므로 기본 옵션이 필요합니다. 즉, 처음 몇 바이트가 알려진 매직 번호로 인식되지 않으면 텍스트 파일이라고 가정합니다.

Base-64 인코딩 단순히 파일의 이진 표현입니다. 다시 바이트 시퀀스로 변환하고 처음 몇 바이트를 평가하면 파일이 특정 유형임을 나타내는 데 충분해야합니다. 이 방법은 불완전한 해결 방법입니다. 예를 들어, 마술 번호 (예 : "BM")로 시작하는 텍스트 파일은 다른 유형의 파일로 분류 될 수 있습니다.