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

Форум PHP

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

 

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

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

тема: как дать для скачивания .pdf или.jpg в виде файла без вывода в браузер?
 
 автор: pindos   (29.10.2009 в 15:01)   письмо автору
 
 

как дать пользователям для скачивания .pdf или.jpg в виде файла без вывода в браузер?

Если это невозможно, то тогда как скрыть их реальный адрес?

Я попробовал так:
header("Location: upload/files/somefile.pdf");
header("Content-type: application/octet-stream");
exit;

файл pdf открывается в браузере.. а там видно его адрес...

  Ответить  
 
 автор: Trianon   (29.10.2009 в 15:03)   письмо автору
 
   для: pindos   (29.10.2009 в 15:01)
 

адрес будет видно так или иначе.

  Ответить  
 
 автор: pindos   (29.10.2009 в 15:53)   письмо автору
 
   для: Trianon   (29.10.2009 в 15:03)
 

Но это будет адрес не pdf а php файла, в котором был написан код.
Я попробовал так:
$file="upload/files/1.pdf";
header('Content-Disposition: attachment; filename="'.$file.'";'); 
header('Content-type: application/unknown'); 
fpassthru(fopen($file, 'rb')); 


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

  Ответить  
 
 автор: Саня   (29.10.2009 в 16:02)   письмо автору
 
   для: pindos   (29.10.2009 в 15:53)
 

> application/unknown
Что написано — то и получаете.

  Ответить  
 
 автор: pindos   (29.10.2009 в 16:06)   письмо автору
 
   для: Саня   (29.10.2009 в 16:02)
 

a чё надо писать?

  Ответить  
 
 автор: Саня   (29.10.2009 в 16:33)   письмо автору
 
   для: pindos   (29.10.2009 в 16:06)
 

application/octet-stream

  Ответить  
 
 автор: pindos   (29.10.2009 в 16:50)   письмо автору
 
   для: Саня   (29.10.2009 в 16:33)
 

Уррааа!! Заработало!!!
Вот только теперь проблеммка:
-все скачиваемые файлы имеют одно и то же имя - 2.pdf (ведь вызывающий скрипт носит гордое имя 2.php!!!
<?
$file3
="upload/files/1235483076.pdf";
header("Content-Disposition: attachment; filename=$file3");   
header("Content-Type: application/octet-stream; name=$file3");  
fpassthru(fopen($file3'rb')); 
exit;
?>

Кто нибудь знает, как давать файлам другие имена?

  Ответить  
 
 автор: pindos   (29.10.2009 в 18:04)   письмо автору
 
   для: pindos   (29.10.2009 в 16:50)
 

Кстати заработало вот так:
<?$file="upload/files/somefile.pdf";
$name="chumardos";
header("Content-Disposition: attachment; filename=\"".$name."\"");
//header("Content-Type: application/octet-stream");  
readfile($file);
?>


Кто-нибудь знает почему?

  Ответить  
 
 автор: Trianon   (29.10.2009 в 22:17)   письмо автору
 
   для: pindos   (29.10.2009 в 16:50)
 

$file3="upload/files/1235483076.pdf";
Вы не имеете права навязывать путь удаленной стороне.
Куда разместить файл - дело клиента, а не сервера.

  Ответить  
Rambler's Top100
вверх

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