2011-01-23 6 views
0

데이터베이스에 다른 BLOB 유형 (.pdf, .xls, .gif .png ...)을 업로드했습니다. 이제 pdf 파일에 PDF 아이콘이 표시되고 해당 파일을 두 번 클릭하면 열어보기 아이콘에 BLOB 내용을 표시하고 싶습니다.mvc 페이지에 blob 파일을 표시하는 방법은 무엇입니까?

감사합니다. 당신

+0

구현하기 어려운 특정 부분은 무엇입니까? 데이터베이스 쿼리? 파일을 응답으로 스트리밍 하시겠습니까? 보기에서 사용 가능한 항목 목록을 표시 하시겠습니까? –

+0

이 코드에서 확장 파일 형식을 가져 오는 방법은 다음과 같습니다. var extension = Path.GetExtension (SourceFileName) .ToLower(); SourceFileName은 파일의 phisical 주소입니다. 을 전달할 수 있습니까? – Negar

+0

BLOB 만 사용하는 경우 파일 이름이 없을 가능성이 높습니다. _Path.GetExtension_는 파일 이름에 적용됩니다. 따라서 BLOB는 전달할 수 없습니다. – Codo

답변

1

당신이하고 싶은 것은 각 파일에 대한 링크 (아이콘이있는)와 실제 파일 내용을 전달하는 별도의 작업 (컨트롤러 중 하나에서)을 표시하는보기 페이지의 두 부분으로 구성됩니다.

가장 쉬운 방법은 데이터베이스에 파일을 업로드 한 다음 파일 형식을 데이터베이스의 별도 열에 저장할 때 파일 형식을 분석하는 것입니다. 대부분의 파일의 경우 파일의 처음 몇 바이트에서 파일 유형을 파생시킬 수 있습니다 (Magic Number 참조).

파일 내용을 사용자에게 전달하는 역할을하는 컨트롤러의 동작은 구현하기가 쉽습니다. 파일의 ID에 따라 데이터베이스에서 바이트 배열로로드하고 FileContentResult 인스턴스로 반환합니다.

(보기 페이지에서) 파일에 대한 링크를 만들려면 Html.ActionLink 또는 컨트롤러 이름, 작업 이름 및 파일 ID와 유사한 기능을 사용하기 만하면됩니다.

관련 문제