1

SQL Server 2008 でバイナリ データを作成および挿入するために使用しているクエリを次に示し
ます。

CREATE TABLE Employees (
Id int,
Photo varbinary(max) not null,
Name varchar(50) not null,
Sound varbinary(max) not null
)

クエリを挿入:

INSERT INTO Employees SELECT '10',
(SELECT BulkColumn AS E FROM OPENROWSET ( BULK 'd:\1.jpg', Single_Blob) bc), 'John', (SELECT BulkColumn AS E FROM OPENROWSET ( BULK 'd:\2. wav', Single_Blob) bc)

ファイルの 1 つは.jpgで、もう 1 つは.wav
です。取得中にこれらのファイルの拡張子を知るにはどうすればよいですか?
拡張子を見つけるためにクエリを使用する必要がありますか?
または
、jsp で結果セットを取得した後、コンテンツ タイプを確認する必要がありますか?

4

1 に答える 1

0

コンテンツタイプまたはファイル名/拡張子の別の列をDBテーブルに追加する必要があります。このようにして、バイナリデータに沿って挿入し、後で取得することができます。

サーブレットでは、次のようにファイル名/拡張子に基づいてコンテンツタイプを取得できます。

String contentType = getServletContext().getMimeType(filename);
// ...

挿入する前にこれを行うと、コンテンツタイプを一緒に保存できます。挿入後にこれを行う場合は、ファイル名を一緒に保存する必要があります。

サーブレットコンテキストのデフォルトのmimeタイプは、サーブレットコンテナで定義されますweb.xml。これは、たとえば、その中にあるTomcatの場合です/conf/web.xml。別のmimeタイプを自分のものに追加することもできます/WEB-INF/web.xml

<mime-mapping>
    <extension>svg</extension>
    <mime-type>image/svg-xml</mime-type>
</mime-mapping>

参照:

于 2011-04-09T17:50:06.643 に答える