Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » PHP-download

Ответить
Настройки темы
PHP-download

Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Подскажите как на php сделать download файла.
например, чтобы вызывать

download.php?<параметр отвечающи за то, что хотим скачать>

и после выполнения download.php, открывалось окно с предложением
сохранения файла.


или киньте ссылку где это описано.


Спасибо, Дмитрий

Отправлено: 18:11, 02-11-2003

 

Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


Вот что-то валяется.

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 22:04, 02-11-2003 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Ну вот вроде получилось, протестировал в IE, Opera, FlashGet

скрипт вызывается так: <URL путь к скрипту>download.php?file=1
т.е. для будущего предусмотрел параметр file, который будет принимать
и другие значения, не только "1".

<?
switch ($file)
  {
   case 1:
        $URL_download = 'Полный путь к файлу';
        $file_name='Имя файла, обычное, например prog.zip';
break;
  default:
    $URL_download = '';
  }

if ($URL_download!='')
{

if (ereg('Opera(/| )([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT'], $log_version)) {
define('BROWSER_USER_VER', $log_version[2]);
define('BROWSER_USER_AGENT', 'OPERA');
} else if (ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT'], $log_version)) {
define('BROWSER_USER_VER', $log_version[1]);
define('BROWSER_USER_AGENT', 'IE');
} else if (ereg('OmniWeb/([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT'], $log_version)) {
define('BROWSER_USER_VER', $log_version[1]);
define('BROWSER_USER_AGENT', 'OMNIWEB');
} else if (ereg('Mozilla/([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT'], $log_version)) {
define('BROWSER_USER_VER', $log_version[1]);
define('BROWSER_USER_AGENT', 'MOZILLA');
} else if (ereg('Konqueror/([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT'], $log_version)) {
define('BROWSER_USER_VER', $log_version[1]);
define('BROWSER_USER_AGENT', 'KONQUEROR');
} else {
define('BROWSER_USER_VER', 0);
define('BROWSER_USER_AGENT', 'OTHER');
}

$mime_type = (BROWSER_USER_AGENT == 'IE' || BROWSER_USER_AGENT == 'OPERA')
? 'application/octetstream'
: 'application/octet-stream';


$file_size=filesize($URL_download);

header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Content-Type: ' . $mime_type);
header('Accept-Ranges: bytes');
header("Content-Length: ".$file_size);
header('Content-Disposition: inline; filename="'.$URL_download.'"');
header('Content-Disposition: attachment; filename="'.$file_name.'"');
header("Content-Transfer-Encoding: binary";

$fp = fopen($URL_download, 'rb');
$file_buffer = fread($fp, $file_size);
fclose ($fp);
print $file_buffer;

exit();
} else
{
 echo "File not found! Please change 'file' variable value!";
}
?>



Для того, чтобы вывести текст, а потом автоматом загружать файл,
я сделал следующее:

1. Создал файл info.php (вызывается тоже с параметром file,
  например <URL путь к скрипту>info.php?file=1
2. Этот файл выводит через обычные "echo" содержимое будущего
  html-файла. Ссылку на загрузку, если автоматическая не
  началась, т.к. такое возможно, если JavaScript отключить в
  браузере.
3. И в последок на OnLoad тела навешиваем функцию, в которой
  вызываем window.location = 'download.php?file=1, вот и всё.


Всем огромное спасибо.

Отправлено: 22:29, 10-11-2003 | #3


Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


Mitiai, на будущее просьба выводить какой-либо код в теге code. В противном случае некоторые элементы вашего кода могут быть отображены некорректно.

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 01:34, 11-11-2003 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » PHP-download

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интернет - Download Master Valery51 Программное обеспечение Windows 126 05-12-2013 19:45
Проблема с PHP(не передаются переменные из формы в PHP- скрипт) Kirander Вебмастеру 21 03-08-2009 01:11
C/C++ - [решено] PHP. Fatal error: Function name must be a string in /var/www/index.php on line 15 Artem-Samsung Программирование и базы данных 6 29-11-2008 18:37
[решено] Apache 2.2.8 + Php 5.2.6 + MySQL 5.0.51b (win) - не работает php v0f41k Вебмастеру 4 11-05-2008 22:08
Download Master shchvi Хочу все знать 9 19-03-2005 22:13




 
Переход