Получение двоичных данных [varbinary (max)] из SQL Server 2008 с использованием JSP - PullRequest
1 голос
/ 09 апреля 2011

Вот запрос, который я использую для создания и вставки двоичных данных в 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 Сотрудники ВЫБРАТЬ '10',
(ВЫБЕРИТЕ BulkColumn AS E ИЗ OPENROWSET (BULK 'd: \ 1.jpg', Single_Blob) bc), 'John', (SELECT BulkColumn AS E ИЗ OPENROWSET (BULK 'd: \ 2.wav', Single_Blob) bc)

Один из файлов .jpg , а другой .wav
Как я могу узнать расширение этих файлов при получении?
Нужно ли использовать запрос для поиска расширения?
ИЛИ
Должен ли я видеть тип содержимого после получения набора результатов в jsp?

1 Ответ

0 голосов
/ 09 апреля 2011

Вам необходимо добавить еще один столбец для типа контента или имени файла / расширения в таблицу БД.Таким образом, вы можете просто вставить его в двоичные данные и получить обратно позже.

В сервлете вы можете получить тип содержимого на основе имени / расширения файла следующим образом:

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

Если вы сделаете это до вставки, вы можете сохранить тип контента вместе с ним.Если вы сделаете это после вставки, то вы должны сохранить имя файла вместе с ним.

Типы пантомимы по умолчанию из контекста сервлета определены в web.xml servletcontainer, например, Tomcat находится в его /conf/web.xml.Вы также можете добавить другие типы пантомимы к своему /WEB-INF/web.xml, например,

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

См. Также:

...