2014-09-24 4 views

답변

3

텍스트 필드를 사용해야하는 경우, 당신은 바이트 배열로 파일을 읽을 base64로 문자열이 변환 한 텍스트 필드에 그 저장할 수 있습니다 :

string fileString = Convert.ToBase64String(memoryStream.ToArray()); 

하거나 실제이있는 경우 디스크에 파일 :

string fileString = Convert.ToBase64String(File.ReadAllBytes(@"path\to\file.pdf")); 
+0

한 가지 질문 : Base64는 무엇입니까? 텍스트 형식과 호환 가능합니까? – ConfusedSleepyDeveloper

+4

Base64는 이진 데이터를 문자열로 나타낼 수있는 인코딩 체계입니다. http://en.wikipedia.org/wiki/Base64 –

3

하나의 옵션은 파일을 바이트 배열로 변환 한 다음 db에 varbinary 열로 저장하는 것입니다.

byte[] bytes = System.IO.File.ReadAllBytes("<pdfFile>"); 

파일 서버 또는 일부 폴더에 파일을 저장 한 다음 파일 경로를 db에 저장하는 것이 좋습니다.

+0

을 나는 열 유형이 DB 스키마가 변경 될 수 없습니다 싶은 ...하지 VARBINARY – ConfusedSleepyDeveloper

+0

글쎄, 그때는 '텍스트'컬럼에 저장 될 수있다 "TEXT"... TEXT "말했다 하지만 db에서 복귀 할 때 다시 바이너리로 변환해야합니다. –

+0

Ok .. 어떻게? 업데이트 할 수 있습니까? 대답? – ConfusedSleepyDeveloper

2

모든 이진 파일을 바이트 배열로 읽고 Convert.ToBase64String을 사용하여이 파일을 base64로 변환 할 수 있습니다. 결과 문자열은 db에 텍스트로 저장 될 수 있습니다. 바이트 배열로 다시 디코딩해야 할 때 FromBase64String을 사용하십시오.

관련 문제