Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> HTML тег embed и wav из сервлета, <embed src="http://.../GetWav?ID_Z=1"> ? 
V
    Опции темы
koroplysov
Дата 6.4.2011, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 29.8.2009

Репутация: нет
Всего: нет



Такая ситуация.
В базе хранятся wav файлы, их нужно на веб страничке проиграть. Я разделил это дело на 2 сервлета:
SelectWav - формирует html страницу где в таблице имеются ссылки на файлы <a href="http://.../GetWav?ID_Z=12">Файл 12</a> через сервлет GetWav и номер файла ID_Z. В GetWav работает функция:
Код

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException, SQLException
    {

        String ID_Z=request.getParameter("ID_Z");
        OutputStream fos=response.getOutputStream();
        int L=0;
        Connection con = null;
        Statement stmt = null;
        try {
            try {
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            } catch (ClassNotFoundException eс) {
            }
            Properties connInfo = new Properties();
            con= DriverManager.getConnection("jdbc:odbc:База","логин","пароль");
            stmt = con.createStatement();
        } catch (SQLException e1) {
        }
        try {
            String strSQLn = "select a.WAV_Z from TABL_Z a where a.ID_Z="+ID_Z;
            ResultSet res  = stmt.executeQuery(strSQLn);
            byte[] buffer = new byte[32768];
            int count;
            InputStream is=null;
            while (res.next()) {
                is=res.getBinaryStream(1);
                while ((count = is.read(buffer)) != -1){ fos.write(buffer,0,count);L+=count;}
                break;
            }
            res.close();
        } catch (SQLException e2) {
        }
        try {
            con.close();
            stmt.close();
        } catch (SQLException e3) {
            //return LSS;
        }
            response.setContentType("audio/x-wav");
            response.setHeader("pragma", "public");
            response.setHeader("pragma", "no-cache");
            response.setHeader("Cache-Control","cache");
            response.setHeader("Cache-Control","must-revalidate");
            response.setHeader("Content-Disposition","attachment; filename=\""+ID_Z+".wav\"");
            response.setContentLength(L);  
        fos.flush();
        response.flushBuffer();
        fos.close();
    }

Все работает замечательно. Файл открывается правда в проигрывателе.
А вот если использовать вместо ссылки конструкцию типа <embed src="http://.../GetWav?ID_Z=1"> то не работает(значек там типа должен быть объект).


Как это оживить? Может в response.setHeader указать чего? Такое ощущение что embed  не понимает что GetWav возвращает wav файл. Или может есть JS проигрыватели которые понимают такие ссылки?
PM MAIL   Вверх
koroplysov
Дата 6.4.2011, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 29.8.2009

Репутация: нет
Всего: нет



СДЕЛАЛ!!!
Неделю мучался, MIME уже начал изучать, а всегото в теге embed нужно указать type="audio/x-wav", то есть должно быть:
<embed src="http://.../GetWav?ID_Z=1" type="audio/x-wav"> ну и остальные параметры по желанию.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0891 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.