私は自分のデータベースにFILESTREAMの画像を保存しています。その画像をWebブラウザに戻すのに最適な解決策を見つけようとしています。FILESTREAMからSQLでブラウザに画像をストリーミングする最も簡単な方法は何ですか?
私は、ファイルシステム上のファイルを管理していた場合は、自分自身、最も簡単な方法は、単に次のようになります。
Response.TransmitFile(pathToFile);
これは、(私の理解に)、それをクライアントに戻って送信する前にメモリにファイルをロードしません。そのように素敵でスピーディーです。
私は現在、FILESTREAMを取得するためにLinq to SQLを使用しています。これは、FILESTREAMをバイナリオブジェクトとして提供します。
これまでのところ、それをすることのこの非常に醜い方法を持っている:
Response.WriteBinary(fileStreamBinary.ToArray());
私は、LINQ to SQLはで悩まとより直接的に物事をやっていないほうが良いとしているだろうか?
なぜ私はFILESTREAMを最初に気にかけていたのだろうと思っていて、ファイルの管理に固執していませんでした。私は「バンドワゴン」という言葉を使わずに理由があったと確信しています!
多分私たちは別のバイナリオブジェクト型について話しているかもしれません - LinqはRead()メソッドを持たないSystem.Data.Linq.Binaryオブジェクトを返します:( – joshcomley
あなたのコードサンプルを誤解し、fileStreamBinaryがストリーム...私はSystem.Data.Linq.Binaryに精通していませんが、バッファ全体を一度にフェッチしているようですので、メモリにロードすることは避けられません。 "醜い"唯一の方法です... –
FILESTREAMを使用するとき、私はLinqを回避する必要があるかもしれないように見えます。FILESTREAMの全体の点として見てばかばかしいように見えるのは、超高速ダイレクトディスクからのストリーミングを許可することでした! – joshcomley