Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2013, 12:14   #11
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

Сообщения о ошибке не выдает, но и файл не загружает.
На точку исправил - та же фигня.

Код:
function file_force_download($file) {
if (file_exists($file)){
$ex=end(explode('.',$file)); 
$mime='application/'.$ex; 
header('Content-type:'.$mime); 
header('Content-Length: '.filesize($file)); 
header('Content-Disposition: attachment; filename='.basename($file)); 
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");// дата в прошлом чтобы не кешировать 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
 // всегда модифицируется 
header("Cache-Control: no-store, no-cache, must-revalidate");// HTTP/1.1 
header("Cache-Control: post-check=0, pre-check=0", false); 
header("Pragma: no-cache");// HTTP/1.0 
readfile($file); 
exit; 
}else{echo "file not found!";}
}

file_force_download("files/test.exe");
alextrof94$gmail.com
alextrof94 вне форума Ответить с цитированием
Старый 11.10.2013, 12:16   #12
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

Код:
function file_force_download($file) {
if (file_exists($file)){
$ex=end(explode('.',$file)); // Тут исправлен разбор определения расширения
$mime='application/'.$ex; 
header('Content-type:'.$mime); 
header('Content-Length: '.filesize($file)); 
header('Content-Disposition: attachment; filename='.basename($file)); 
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");// дата в прошлом чтобы не кешировать 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
 // всегда модифицируется 
header("Cache-Control: no-store, no-cache, must-revalidate");// HTTP/1.1 
header("Cache-Control: post-check=0, pre-check=0", false); 
header("Pragma: no-cache");// HTTP/1.0 
readfile($file); 
exit; 
}else{echo "file not found!";}
}

file_force_download("files/test.exe");
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Старый 11.10.2013, 12:18   #13
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

Исправленный код - так же не работает...
alextrof94$gmail.com
alextrof94 вне форума Ответить с цитированием
Старый 11.10.2013, 12:20   #14
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

Ещё, на некоторых бесплатных хостингах стоит запрет на скачивание .exe файлов. Если у вас бесплатных хостинг, попробуйте скачать файл с другим расширением. А я сейчас протестю этот вариант у себя на сервере
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Старый 11.10.2013, 12:21   #15
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

Цитата:
Сообщение от grominfo Посмотреть сообщение
Ещё, на некоторых бесплатных хостингах стоит запрет на скачивание .exe файлов. Если у вас бесплатных хостинг, попробуйте скачать файл с другим расширением. А я сейчас протестю этот вариант у себя на сервере
Хостинг платный. Пробовал сначала текстовые файлы скачивать, но при обнаружении вставки внутренностей в браузер - решил качать ехе, но проблема была не в расширении.
И явно не запрещено качать файлы, раз в браузер их содержимое можно закачать...
alextrof94$gmail.com
alextrof94 вне форума Ответить с цитированием
Старый 11.10.2013, 12:24   #16
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

Протестил последний вариант, всё работает

http://site-creatiff.ru/down.php
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Старый 11.10.2013, 12:27   #17
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

Цитата:
Сообщение от grominfo Посмотреть сообщение
Протестил последний вариант, всё работает

http://site-creatiff.ru/down.php
http://alextrof94.ru/download_soft.php
alextrof94$gmail.com
alextrof94 вне форума Ответить с цитированием
Старый 11.10.2013, 12:28   #18
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

file not found! при обновлении страницы
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Старый 11.10.2013, 12:29   #19
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

Цитата:
Сообщение от grominfo Посмотреть сообщение
file not found! при обновлении страницы
я неудачно время выбрал, чтобы проверить эту ошибку просто (имя файла на секунд 5 менял)
alextrof94$gmail.com
alextrof94 вне форума Ответить с цитированием
Старый 11.10.2013, 12:31   #20
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

Один и тот же скрипт. Вот в этом примере

http://site-creatiff.ru/down.php

У меня лежит в корне сайта down.php, папка files, и в ней файл cmd.exe

down.php

Код:
<?php
 function file_force_download($file) {
if (file_exists($file)){
$ex=end(explode('.',$file)); // Тут исправлен разбор определения расширения
$mime='application/'.$ex;
header('Content-type:'.$mime);
header('Content-Length: '.filesize($file));
header('Content-Disposition: attachment; filename='.basename($file));
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");// дата в прошлом чтобы не кешировать
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
 // всегда модифицируется
header("Cache-Control: no-store, no-cache, must-revalidate");// HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");// HTTP/1.0
readfile($file);
exit;
}else{echo "file not found!";}
}

file_force_download("files/cmd.exe");

?>
Как видите всё работает. Следовательно ошибку нужно искать не в скрипте.
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TWebBrowser и окно закачки файла Pcrepair Общие вопросы Delphi 10 23.11.2012 23:40
Нужно быстро создать страницу GODEXPERT Фриланс 5 19.11.2012 23:16
Нужно создать PHP страницу? Diablow PHP 2 01.04.2011 08:25
Нужен компонент для закачки файла dimfil Компоненты Delphi 1 21.01.2009 13:00
Запустить окно закачки файла при нажатии кнопки iankov JavaScript, Ajax 3 11.01.2009 13:14