За последние 24 часа нас посетили 18096 программистов и 1700 роботов. Сейчас ищут 1533 программиста ...

Отобразить из базы запись в формате, *.mht

Тема в разделе "PHP и базы данных", создана пользователем Olga90, 10 окт 2006.

  1. Olga90

    Olga90 Активный пользователь

    С нами с:
    10 окт 2006
    Сообщения:
    29
    Симпатии:
    0
    спользую БД MySQL
    Есть бинарное поле в котором я сохраняю данные(текст, изображение, формулы, графики) из Окна Ворда, предварительно сохранив инфу в формате *.mht
    хочу теперь отобразить в браузере некоторую запись из этого бинарного поля
    при открытии в Опере или IE появляется след. информация:
    т.е. показывается только текст, а картинка нет :(

    Как от этого избавиться ??? Что нужно сделать???
     
  2. Anonymous

    Anonymous Guest

    *.mht "понимает" только IE. Это раз.
    во вторых, *.mlt уже содержит все блоки HTML в себе:
    Это лишнее.
    в третьих, *.mht не является text/html докуметом, перед его выводом надо послать заголовок, с ним связанный, ф-ией header()
     
  3. Olga90

    Olga90 Активный пользователь

    С нами с:
    10 окт 2006
    Сообщения:
    29
    Симпатии:
    0
    В IE такая же байда

    для Ворда я нашла header()
    а что нужно писать для *.mht
    PHP:
    1. <?
    2. require_once("C:connect.php");
    3.  
    4. $result = mysql_query('SELECT Image_Text FROM Olga where ID=16');
    5. $XXX = mysql_result($result,0,0);
    6.  
    7. //header( "Content-Type: application/msword");
    8. //header( "Content-Disposition: inline; filename=my_file.doc");
    9.  
    10.  
     
  4. Anonymous

    Anonymous Guest

    Content-Type: multipart/related;
     
  5. Olga90

    Olga90 Активный пользователь

    С нами с:
    10 окт 2006
    Сообщения:
    29
    Симпатии:
    0
    пишу так
    Код (Text):
    1. <?
    2. require_once("C:\connect.php");
    3.  
    4.  $res = mysql_query('SELECT Image_Text  FROM Olga where ID=16');
    5.  $body = mysql_result($res,0,0);
    6.  
    7. header( "Content-Type: multipart/related");
    8.  echo $body;
    9. ?>
    то же самое. Или я не то пишу в хидере???
     
  6. Anonymous

    Anonymous Guest

    header('Content-Type: application/mime;');
    Виноват, ошибся. Только что проверил, работает в IE и Опере последних версий, в FF не работает.
     
  7. Olga90

    Olga90 Активный пользователь

    С нами с:
    10 окт 2006
    Сообщения:
    29
    Симпатии:
    0
    а у меня тоже самое почему-то
     
  8. Anonymous

    Anonymous Guest

    положил свой простейший примерчик здесь Попробуйте... в IE все сработало....
     
  9. Olga90

    Olga90 Активный пользователь

    С нами с:
    10 окт 2006
    Сообщения:
    29
    Симпатии:
    0
    ваш примерчик теперь открывается в Опере (текст, фон), кроме кнопочек
    Ну это и понятно ведь это же Опера
    Но я удивилась когда открылся чистый лист в IE - странно

    Вот что мне нужно:
    я работаю с окном ворда. Ввожу там текст и картинку. Сохраняю введенную в формате *mht (к примеру в файле olga.mht). Он нормально открывается в IE
    Далее я этот файл сохраняю в бинарное поле БД MySQL
    И хочу отобразить эту запись из таблицы БД в браузере
    Но мне отображается только лишь сообщение о том что браузер не поддерживает веб-архив и лишь текст из этой записи таблицы БД, а изображение нет
     
  10. Anonymous

    Anonymous Guest

    У меня в IE все открывается...
    Попробуйте сам приложенный mht им открыть, откроется? Может, дело в браузере?
     
  11. Olga90

    Olga90 Активный пользователь

    С нами с:
    10 окт 2006
    Сообщения:
    29
    Симпатии:
    0
    отдельно открывает
    Дело в том что у меня не открывается со словом <? php
    а открывается только если простом <?
    И все равно в IE появляются эти каракули кодировка страницы, а в Опере все кроме картинок
     
  12. Olga90

    Olga90 Активный пользователь

    С нами с:
    10 окт 2006
    Сообщения:
    29
    Симпатии:
    0
    вот что в IE на твой пример
     
  13. Anonymous

    Anonymous Guest

    Не пример, а сам test.mht откройте браузером.
    Он был эксплорером создан, кстати.
    Если не откроет - ищите ошибку в эксплорере...
     
  14. Olga90

    Olga90 Активный пользователь

    С нами с:
    10 окт 2006
    Сообщения:
    29
    Симпатии:
    0
    сам test.mht открывается полностью через IE
    А вот через php нет
     
  15. Olga90

    Olga90 Активный пользователь

    С нами с:
    10 окт 2006
    Сообщения:
    29
    Симпатии:
    0
    У меня немного получилось :)
    дело вот в чем:
    очень странно стала отображаться инфа в Опере (версия 8.5)
    если ввести в Оперу в адресную строку путь к моему ПХП файлу и нажать ентер, то появиться только текстовая инфа. Далее если в браузере нажать на кнопочку Обновить, то также остается отображена лишь текстовка из таблицы БД. Теперь иду в адресную строку Оперы и жму ентер и мне отображается и текстовка и изображение :eek:

    И изображение появляется только тогда, если делать все в таком же порядке как я написала

    А в IE вообще ничего не отображается(чистый лист) не при каких изощрениях :x

    В чем может быть проблема???

    Прилагаю все свои файлы и свою БД(Olga) из MySQL. В таблице Mike всего 2 записи
    Помогите пожалуйста разобраться.

    http://dump.ru/files/8/8968817638/files.rar
     
  16. Olga90

    Olga90 Активный пользователь

    С нами с:
    10 окт 2006
    Сообщения:
    29
    Симпатии:
    0
    есть идеи???
     
  17. Anonymous

    Anonymous Guest

    Olga90, еще не пробовал. =) У меня еще постоянная работа есть, и на ней надо работать.. ;)
     
  18. Olga90

    Olga90 Активный пользователь

    С нами с:
    10 окт 2006
    Сообщения:
    29
    Симпатии:
    0
    тогда с нетерпением буду ждать твоего ответа
     
  19. Anonymous

    Anonymous Guest

    Посмотрел, да есть такая проблема.... сложно сказать, с чем она связана.
    Есть вариант:
    1. Выборкой создавать временный файл *.mht из базы
    2. Выдавать заголовок Location на этот файл.
     
  20. Olga90

    Olga90 Активный пользователь

    С нами с:
    10 окт 2006
    Сообщения:
    29
    Симпатии:
    0
    а как все это делается???
     
  21. Anonymous

    Anonymous Guest

    Попробуйте так, я положил примерчик:
    здесь
     
  22. Olga90

    Olga90 Активный пользователь

    С нами с:
    10 окт 2006
    Сообщения:
    29
    Симпатии:
    0
    Горбунов Олег, у меня тоже работает
    Спасибо тебе большое за помощь. Очень помог мне
     
  23. Olga90

    Olga90 Активный пользователь

    С нами с:
    10 окт 2006
    Сообщения:
    29
    Симпатии:
    0
    а что за тройное равно вот в этой строчке???
    if (fwrite($handle, $body) === FALSE)
     
  24. Anonymous

    Anonymous Guest

    Olga90, отличается от обычного только тем, что проверяет также и тип переменных.
    т.е.
    1 == '1' - это true, но 1==='1' это false
     
  25. Davil

    Davil Guest

    Olga90 тройное равенство - это точное сравнение не только по значению, но и по типу.