2015-02-11 6 views
0

Я создал databasetable «Blob», который может содержать TextFiles, XML-файлы или почтовый-Files:Как я могу решить эту проблему с помощью BLOB-столбца?

CREATE TABLE "RT"."BLOB" 
( "B_ID" INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 NO CYCLE CACHE 20), 
     "L_ID" INTEGER NOT NULL, 
     "ATTACHMENTS" BLOB(1048576) NOT NULL, 
     "NAME" VARCHAR(600) 
    ) 

Я хочу теперь, что название исходных файлов, содержание которых высадился в blob- столбец («ПРИЛОЖЕНИЯ») должен отображаться как ссылка на странице JSP. Это происходит без проблем. Если я нажму на blob-Name (столбец «NAME» в базе данных) на моей JSP-странице, blob должен быть загружен из таблицы, а затем отображен соответствующим образом в зависимости от формата - без дополнительной обработки на следующей странице JSP , Как я могу реализовать это в JSP? Как должна команда INSERT искать таблицу blob? Мне нужна срочная помощь. Спасибо

ответ

0

В этом состоянии ваш JSP пытается выполнить несколько шагов, поэтому важно выяснить, где происходит первый сбой. То, как вы используете тот же физический файл, что и источник INSERT, и цель SELECT затрудняет процесс устранения неполадок. По крайней мере, используйте два разных файла, чтобы вы могли определить, не работает ли какой-либо конкретный оператор SQL в JSP или преуспевает.

Вы упомянули, что столбец BLOB ATTACHMENTS может содержать ZIP-файл. Основываясь на вашем DDL, я предполагаю, что столбец NAME покажет тип файла вложения. ZIP-файл или любые другие двоичные данные нельзя сбрасывать встроенными в HTML-документ, поскольку ваш JSP в настоящее время пытается. Возврат фактических двоичных данных из JSP требует некоторых дополнительных соображений, которые описаны в другом сообщении SO: Display BLOB (image) through JSP.

Что касается вложений TXT, JSP может печатать их встроенными на HTML-странице (см. Примеры DtLob.java), но даже тогда вы захотите убедиться, что текстовое кодирование и/или кодовая страница файла совместимы с окружающий документ HTML. Например, некоторые схемы кодирования текста начинаются с byte order mark, который не принадлежит к середине веб-страницы. По этим и другим причинам я рекомендую хранить текстовые вложения как CLOB, а не BLOB, если вы собираетесь показывать их содержимое на страницах HTML. Для вложений XML, отображаемых в строке на веб-странице, вам также необходимо избежать XML таким образом, чтобы клиентский браузер не пытался отображать его как разметку HTML.

Тангенциально, я должен указать, что BLOB плохое имя для таблицы в любой СУБД, даже если это не reserved word в DB2.