2011-01-23 7 views
0

データベースにいくつかの異なるBLOB型(.pdf、.xls、.gif、.png ...)をアップロードしました。 今、pdfファイルのpdfアイコンを表示してそのファイルをダブルクリックすると、アイコン(タイプ別)を表示してそのビューのページにBLOBコンテンツを表示したい場合はどのようにMVCページにBLOBファイルを表示できますか?

お願いします。あなたは

+0

この中で具体的にどの部分を実装するのが難しいですか?データベースのクエリですか?ファイルを応答にストリーミングする?ビューに利用可能なエンティティのリストを表示しますか? –

+0

このコードでは、どのようにして拡張子ファイルの種類を取得できますか:var extension = Path.GetExtension(SourceFileName).ToLower(); SourceFileNameはファイルのフィジカルアドレスです。を渡すことはできますか? – Negar

+0

BLOBのみを使用する場合、おそらくファイル名はありません。 _Path.GetExtension_はファイル名で動作します。だから、それをBLOBに渡すことはできません。 – Codo

答えて

1

2つの部分で構成されています:ファイルごとにリンク(アイコン付き)と実際のファイルの内容を配信する別のアクション(コントローラの1つ)を表示するビューページ。

最も簡単な方法は、ファイルをデータベースにアップロードした後、ファイルタイプをデータベースの別の列に格納するときに、ファイルの種類を分析するのが最も簡単な方法です。ほとんどのファイルでは、ファイルの最初の数バイトからファイルタイプを派生させることができます(Magic Number参照)。

ファイルコンテンツをユーザーに配信する責任を持つコントローラーの動作は、実装するのが簡単です。ファイルのIDに基づいて、データベースからバイト配列にロードし、FileContentResultインスタンスとして返します。

(ビューページの)ファイルへのリンクを作成するには、Html.ActionLinkまたはコントローラの名前、アクション名、およびIDと同様の機能を使用してください。

関連する問題