0

ファイルをデータベースにバイナリ形式で保存しました..これらのファイルをダウンロードしたいのですが、テーブルのどの列にもファイルの名前、拡張子、またはタイプを保存していません..バイナリストリームだけです。ダウンロード時にバイナリストリームから拡張子を知ることはできますか? どのように?

4

2 に答える 2

0

データベースに大量のファイルが保存されていない場合は、データベース内のファイルを反復処理し、tmp ファイルを作成し、必要なファイル情報を対応する ID とともに保存する backgroundworker クラスを作成できます。これをスティーブの回答と組み合わせることができます.backgroundworkerクラスは、最初のバイトに基づいてファイルタイプを決定し、必要に応じてtmpファイルを作成できます..

于 2013-10-12T11:31:10.140 に答える
0

最初のバイトの内容によって認識できる特定のタイプのファイル (たとえば、EXE ファイルにはMZ最初のバイトがあり、PNG ファイルには があります%PNG) は可能ですが、これは標準ではなく、認識できるプログラムを作成することはほとんどありません。内容を調べて考えられるすべてのファイルの種類を調べることは事実上不可能です。最善の策は、顧客が最もよく使用するファイルに関する情報を検索し、考えられる拡張子を含む新しい列を作成してから、このバイナリ フィールドの内容を調べるカスタム プログラムを作成し、拡張子の列を書き込むことです (一致する場合)。見つかった)。もちろん、バイナリ コンテンツを書き込むメイン プログラムを修正して、拡張列も埋めます。

于 2013-10-12T08:48:38.870 に答える