Подскажите, как вытащить из MySQL бинарный doc и открыть WORD'ом?
$file = mysql_result($result, $myrow["1"]);
header("Content-type: application/msword");
echo $file;
$myrow["1"] - (body) типа blob
что не так??? предлагает открыть-сохранить файл ворда, но по содержанию какой-то левый... не тот что в базе... причём, видимо, этот файл со всем содержимым он создал во время выполнения скрипта... в файле записаны все echo
$result = mysql_query("SELECT * FROM blob_tbl WHERE id='15' ORDER BY id",$db);
if ($row = mysql_fetch_array($result)) {
$file = $myrow[1]; // ну или какой у тебя там индекс поля...
header("Content-type: application/msword");
header('Content-Disposition: attachment; filename="'.$filename.'.doc"');
header("Content-Length: ".strlen($file));
echo $file;
} else {
echo "Невозможно открыть файл.";
}
я думаю сканает... табличку создавать не хочется... если не будет работать, скажи... подправим.
или я что-то упустил и у тебя так сделано?.. просто я не понял откуда взялся твой $myrow... :confused:
индекс поля вроде тот, то бишь $myrow[1]
в таблице всего 2 поля - ID(0) и Body(blob)(1) если я не ошибаюсь...
а в настройках php надо что-нибудь прописывать? подобная ошибка у меня уже выскакивала, то бишь до этого уже доходил и мучал, но ни к чему толковому не пришёл... причём скрипт у моего знакомого работал нормально, а у меня никак....
ну попробуй Content-type: application/octet-stream сделать, в этом случае даже CSV файл отдаётся на сохранение, хоть он и текстовый. ой... не то... у тебя же всё равно онсохраняется файл... тьфу ))) простите :rolleyes:
а если размер неизвестен.... хммм.... слушай, а проверь точно, "кушаешь" ты с БД бинарник или нет вообще =) а то сохранить-то это не проблема ) а вот проверить правильно ли ты берешь значение поля в табличке или нет поможет только дамп таблицы... хмм... да, наверное всё.
PS: кстати. проверь еще, запись вообще хоть одна из таблицы по запросу приходит или нет (mysql_num_rows())
индекс поля вроде тот, то бишь $myrow[1]
в таблице всего 2 поля - ID(0) и Body(blob)(1) если я не ошибаюсь..
вот это очень не хорошо ) как ты пишешь скрипт если даже структуру таблицы не знаешь....... :(
не уверен что это поможет ) всё дело в header'ах...
вот это очень не хорошо ) как ты пишешь скрипт если даже структуру таблицы не знаешь....... :(
так вот в этом-то всё и дело, что до того как столкнулся с проблемой был уверен на 100%, а теперь, когда должно работать, но не работает, я уже начал сомневаться...
mysql_num_rows($result) - выдала 12, то бишь столько же записей в каждом поле (id, body)
может есть ещё какие-нибудь способы получить адрес записи, кроме как $myrow[] ???
запросил mysql_fieldname($result, 1) получил body - как и думал...
то есть? кроме тех, что мне писал Тень Пса, больше никаких нет
уже не знаю что и думать...
впринципе, практически никаких отличий от кода товарища Тень Пса нету
$db = mysql_connect ("localhost" , "root" , "root");
mysql_query("SET NAMES 'utf8'", $db);
mysql_select_db("clover_db",$db);
$result = mysql_query("SELECT * FROM blob_tbl WHERE id='1' ORDER BY id",$db);
$filename = 'manual';
if ($row = mysql_fetch_array($result))
{
$file = $row["body"];
header("Content-type: application/msword");
header('Content-Disposition: attachment; filename="'.$filename.'.doc"');
header("Content-Length: ".strlen($file));
echo $file;
}
else
{
echo "Невозможно открыть файл.";
}
mysql_close();
?>
огромное спасибо за помощь!!! :)
PS: с тебя клик на весы :D :rolleyes:
http://forums.devarticles.com/php-development-48/using-php-to-read-word-documents-doc-txt-files-7319.html - с 6го поста читать )))
это является неким продолжением предыдущего вопроса "как вытащить из MySQL бинарный doc и открыть WORD'ом", только теперь мне не надо его открывать вордом, а вытащить 1-2 строки из doc. файла и отразить их в форме... ещё надо будет как-то перевести из бинарного вида в нормальный...
есть мысли? :)
только ещё вопрос, есть доки по COM'у? не нашёл вообще ничего
оооо ) вот тут ты конечно жжош! =)) хз, но например Abobe Acrobat Reader грузится как бы внутри браузера... а вот Word.....по-моему тока в IE такое возможно... тока если честно я не знаю как...
PS: ну напиши свой рендеррер DOC формата :D /*шучу конечно ;)*/
Ты так лучше не шути, а то ведь не поймет и тебя же самого будет про это спрашивать ;) :D :D
ЗЫ как модератор не могу не заметить, что это флуд :/
я думаю что среди файлов OOffice найдётся DOC-формат... поэтому самый простой способ сконвертить его в HTML...
а вообще, поищи здесь по словам "doc to html, rtf to html" или что-то подобное
http://www.phpclasses.org/