Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Формирование файла
 
 автор: Proger   (10.05.2007 в 00:06)   письмо автору
 
 

На форуме есть возможность скачать тему ввиде html файла в упрощенном виде, но в IE не скачивает! Алгоритм таком, скрипт работает также как и то что выводит стандартно топики пользователю только перед выводом стоят header:

header( "Content-Type: application/html");
header( "Content-Transfer-Encoding: binary");
header( "Content-Disposition: inline; filename=\"topic".$inforum."-".$intopic.".html\"");

Почему Opera понимает, а IE выводит белую страницу? Подскажи ПЛИЗ!

   
 
 автор: Proger   (10.05.2007 в 00:20)   письмо автору
 
   для: Proger   (10.05.2007 в 00:06)
 

Вопрос упростился, белая страница была из-за моей ошибки!

Теперь просто вопрос каков header у html файла? Чтобы он пошёл на скачку как HTML document???

   
 
 автор: bronenos   (10.05.2007 в 00:39)   письмо автору
 
   для: Proger   (10.05.2007 в 00:20)
 

насчет скачать не знаю, а обычно text/html

   
 
 автор: Unkind   (10.05.2007 в 00:41)   письмо автору
 
   для: Proger   (10.05.2007 в 00:20)
 

MIME? text/html

   
 
 автор: Proger   (10.05.2007 в 00:42)   письмо автору
 
   для: Unkind   (10.05.2007 в 00:41)
 

если задать text/html он просто выводит страницу на экран! Как ему указать что ЭТО ФАЙЛ для скачивания?

   
 
 автор: bronenos   (10.05.2007 в 00:45)   письмо автору
 
   для: Proger   (10.05.2007 в 00:42)
 

Content-Disposition: attachment
вроде как

   
 
 автор: Proger   (10.05.2007 в 09:40)   письмо автору
 
   для: bronenos   (10.05.2007 в 00:45)
 

Ребята СПАСИБО огромное! Заработало!

   
 
 автор: Proger   (10.05.2007 в 09:55)   письмо автору
 
   для: Proger   (10.05.2007 в 00:06)
 

Только вот не заметил я лажи... Странности опять, выдаёт HTML document на скачку но имя файла являеться именем скрипта с форматом htm - что за бред?
У меня же вроде как прописано имя файла? Ребят помогите опять!


header( "Content-Type: text/html");
header( "Content-Transfer-Encoding: binary");
header( "Content-Disposition: attachment; filename=\"topic".$inforum."-".$intopic.".html\"");

   
 
 автор: Trianon   (10.05.2007 в 12:56)   письмо автору
 
   для: Proger   (10.05.2007 в 09:55)
 


header( "Content-Type: text/html; charset=\"Windows-1251\"; name=\"topic".$inforum."-".$intopic.".html\"");  
header( "Content-Disposition: attachment; filename=\"topic".$inforum."-".$intopic.".html\""); 

Content-Transfer-Encoding: уберите нахрен. нет такого заголовка в этом протоколе.
и не забывайте указывать кодовую страницу документа.

   
 
 автор: Proger   (10.05.2007 в 19:55)   письмо автору
 
   для: Trianon   (10.05.2007 в 12:56)
 

Имя файла по прежнему имя_скрипта.htm

   
 
 автор: Yuriev   (10.05.2007 в 20:06)   письмо автору
 
   для: Proger   (10.05.2007 в 19:55)
 

Если filename = путь_к_файлу_с_ошибкой, то подставит имя_скрипта.htm

   
 
 автор: Proger   (10.05.2007 в 20:01)   письмо автору
 
   для: Trianon   (10.05.2007 в 12:56)
 

Возможно у меня скрипт изначально не правильный?


<?php
header
"Content-Type: text/html; charset=\"Windows-1251\"; name=\"topic".$inforum."-".$intopic.".html\"");   
header"Content-Disposition: attachment; filename=\"topic".$inforum."-".$intopic.".html\""); 

echo 
'
<html>
......
</html>
'
;
?>


Мне так говорили написать на другом форуме, а заголовки забыли, я подумал в них проблема, может я написал чего не правильно?

   
 
 автор: Trianon   (10.05.2007 в 20:10)   письмо автору
 
   для: Proger   (10.05.2007 в 20:01)
 

Остальное делается через ссылку - в её хвосте тоже стоит указать нужное имя - через значение параметра. Любого - фиктивного.
download.php?.......&name=$inforum-$intopic.html

   
 
 автор: Proger   (10.05.2007 в 20:12)   письмо автору
 
   для: Trianon   (10.05.2007 в 20:10)
 

Что это значит путь_к_файлу_с_ошибкой ? Просто файла не существует! Это считаеться ошибкой? Я как бы его из базы данных формирую по шаблону и выдаю юзеру на скачку с nnым названием! Или обязательно сохранить в файл и отдать на скачку?

   
 
 автор: Trianon   (10.05.2007 в 20:14)   письмо автору
 
   для: Proger   (10.05.2007 в 20:12)
 

>Что это значит путь_к_файлу_с_ошибкой ?
я такого не писал.

   
 
 автор: Yuriev   (10.05.2007 в 20:15)   письмо автору
 
   для: Proger   (10.05.2007 в 20:01)
 

На до разобраться с кавычками и слешами

\"topic".$inforum."-".$intopic.".html\""

   
 
 автор: Proger   (10.05.2007 в 20:20)   письмо автору
 
   для: Yuriev   (10.05.2007 в 20:15)
 

Так помогите же!

Я в идеале представляю "topic".$inforum."-".$intopic.".html"
Но в примера других скриптом стоят слеши, мне лично не понятно для чего и я в таких случаях очень часто сильно путаюсь! Помогите!

   
 
 автор: Yuriev   (10.05.2007 в 20:31)   письмо автору
 
   для: Yuriev   (10.05.2007 в 20:15)
 

А после topic тире должно быть?
Похоже файл с таким путь/именем не находит и поэтому имя для скачивания задает свое, где скрипт header(...)

   
 
 автор: Proger   (10.05.2007 в 20:38)   письмо автору
 
   для: Yuriev   (10.05.2007 в 20:31)
 

имя файла в идеале например такое: topic1-1.html, то есть загружаем инфу для первой темы первого форума...

я уже перепробовал различные кавычки и слеши, а также попробовал банально убрать моё имя и написать типа gavno.html всё равно скачивать даёт script.htm :(((((((
что делать народ - отзовитесь, те кто знает!!!!!!

   
 
 автор: Proger   (11.05.2007 в 00:34)   письмо автору
 
   для: Proger   (10.05.2007 в 20:38)
 

Никто не спасёт?

   
 
 автор: Trianon   (11.05.2007 в 09:45)   письмо автору
 
   для: Proger   (11.05.2007 в 00:34)
 

Вообще-то, если Вы хотите отдать файл на закачку, а не на обозрение, лучше выдавать его с одним из типов application/octet-stream либо application/force-download а не text/html
Я, например, так и не понял, что Вам требуется, чтобы пользователь сохранил файл, или чтобы открыл его.

P.S. Было бы неплохо, если бы Вы перестали разводить грязь в теме, пусть даже собственной. Это я о выбираемых Вами именах.

   
 
 автор: Proger   (11.05.2007 в 10:24)   письмо автору
 
   для: Trianon   (11.05.2007 в 09:45)
 

Если Вы не поняли, объясняю вновь, я генерирую страницу и даю его на скачку (как любой файл) пользователю, чтобы у него появилось окошко загрузки файла, он выбрал путь куда скачать и сохранил у себя, потом мог читать, и проч вытворять! Понятно теперь?

   
 
 автор: Yuriev   (14.05.2007 в 11:04)   письмо автору
 
   для: Proger   (11.05.2007 в 10:24)
 


header("Content-Type: application/force-download);
header("Content-Disposition: attachment; filename= \"$name\"");
fpassthru(fopen($path,"rb"));
exit;

$name - рекомендуемое для сохранения имя файла
$path - путь и настоящее название отправляемого файла
"rb" - чтоб читал бинарно
В случае ошибок в скрипте или если файл $path не найден может быть отправлен файл,
в котором находится этот код т.е. сам себя.
Если посмотреть текстовым редактором такой полученный файл, то возможно там будут вписаны сообщения об ошибках от PHP

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования