Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> перейти по ссылки и скачать *.html. Как? 
:(
    Опции темы
DimanLin
Дата 15.2.2008, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Нужно сделать так. Жмём на ссылку, браузер тутже вываливает стандартное окошко на закачку файла. Проблема только в файле, он будет *.html. Как заставить браузер скачать а не отобразить?
PM MAIL   Вверх
Staind
Дата 15.2.2008, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Нужно послать в браузер соответствующий загаловок header:

Код

header('Content-Disposition: attachment; filename="ПУТЬ_К_ВАШЕМУ_ФАЙЛУ"');


Сделайте отдельно функию скачивания файла с приминением этого заголовка и все.

Это сообщение отредактировал(а) Staind - 15.2.2008, 15:21
--------------------
Ничто так не раздражает человека, как просьба успокоиться
PM MAIL WWW ICQ   Вверх
DimanLin
Дата 24.2.2008, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

   function get_html($id)
    {
        $sel = "select * from resume where id=\"$id\"";
        $rezqu = mysql_query($sel);
        $rez = mysql_fetch_array($rezqu);

        include($_SERVER[DOCUMENT_ROOT] . "/config.php");

        $handle = fopen("$basedir/manager/temp/$rez[fio].html", "x");
        $hed = "'Content-Disposition: attachment; filename=\"$basedir/manager/temp/$rez[fio].html\"'";
        header($hed);
    }


Что не так? Вункцию пускаю а файлик не присылается.... Может в хедаре что напутал...

Это сообщение отредактировал(а) skyboy - 25.2.2008, 14:43
PM MAIL   Вверх
GeneralElectric
Дата 24.2.2008, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Популярная сегодня ссылка. PHP FAQ: Различие между абсолютными и относительными путями. В файловой системе и на сайте.

А вообще, DimanLin, постарайся запомнить одно правило.
Изучая какую-нибудь новую для себя область, занимайся всегда только ей. Убирай все лишнее, всю автоматизацию.
Если ты учишься отдавать файл скриптом, то не должно быть никакой базы данных, никаких функций, а, главное - никаких переменных. Всё должно быть руками прописано в скрипте.

где у тебя ошибка - то ли база данных не отдает, то ли в переменных черт-те что - ты не знаешь. при этом ни переменнуе, ни база тебя на данном этапе не интересуют. тебя интересует отдавать файл скриптом? вот и делай только это.

И если с этим будут проблемы - то будет ясно, что проблема с отдачей.
когда с ними разберешься - добавляй все остальное. если не будет работать - ты будешь знать, что проблема не в заголовках.

PM MAIL   Вверх
awers
Дата 24.2.2008, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

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



Может так?
Код

header("Content-Disposition: attachment; filename=\"{$basedir}/manager/temp/{$rez['fio']}.html\"");
echo file_get_contents("$basedir/manager/temp/{$rez['fio']}.html");


Добавлено через 1 минуту и 27 секунд
Цитата(DimanLin @ 24.2.2008,  18:26)
function get_html($id)
    {
        $sel = "select * from resume where id=\"$id\"";
        $rezqu = mysql_query($sel);
        $rez = mysql_fetch_array($rezqu);

        include($_SERVER[DOCUMENT_ROOT] . "/config.php");

        $handle = fopen("$basedir/manager/temp/$rez[fio].html", "x");
        $hed = "'Content-Disposition: attachment; filename=\"$basedir/manager/temp/$rez[fio].html\"'";
        header($hed);
    }

Что не так? Вункцию пускаю а файлик не присылается.... Может в хедаре что напутал...

начиная с непонятного $handle = fopen("$basedir/manager/temp/$rez[fio].html", "x");
и ненужных ковычек $hed = "'Content-Disposition:
PM MAIL WWW ICQ Skype   Вверх
DimanLin
Дата 25.2.2008, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

   function get_html($id)
    {
        $sel = "select * from resume where id=\"$id\"";
        $rezqu = mysql_query($sel);
        $rez = mysql_fetch_array($rezqu);

        include($_SERVER[DOCUMENT_ROOT] . "/config.php");

        $handle = fopen("$basedir/manager/temp/$rez[fio].html", "x");
        fwrite($handle,"Diman");
        $hed = "Content-Disposition: attachment; filename=\"$basedir/manager/temp/$rez[fio].html\"";
        header($hed);
        unlink("$basedir/manager/temp/$rez[fio].html");
        
    }


Поправил, файлик прилетает. Вот только имя под которым он сохряняется на жостком диске: 
-var-www-fox.ru-manager-temp-Diman Hromov.html а а должен Diman Hromov.html. 

На сервере реально создаётся фаил Diman Hromov.html в котором сторока "Diman" А прилетает -var-www-fox.ru-manager-temp-Diman Hromov.html с нулевым размером.


Это сообщение отредактировал(а) skyboy - 25.2.2008, 14:44
PM MAIL   Вверх
awers
Дата 25.2.2008, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

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



Как ты думаешь, а что значит 
Код

filename=\"$basedir/manager/temp/$rez[fio].html\"";

ну и напиши 
Код

filename=\"$rez[fio].html\"";


PM MAIL WWW ICQ Skype   Вверх
DimanLin
Дата 28.2.2008, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(awers @ 25.2.2008,  17:20)
Как ты думаешь, а что значит 
Код

filename=\"$basedir/manager/temp/$rez[fio].html\"";

ну и напиши 
Код

filename=\"$rez[fio].html\"";

Чертовщина какаето.. Исправил на filename=\"$rez[fio].html\"";. И что удивительно работает.... Я только одного не могу понять..., я откуда php знает откуда этот фаил с сервера брать? Я нигде обсалютный путь не использую....
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

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


 




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


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

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