[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скачивание файлов или всей папки
natalina
Добрый день! Мне необходимо скачать с сервера несколько файлов. Вот есть код.

//Функция для скачивания
function file_download($filename, $mimetype='application/octet-stream') {

if (file_exists($filename)) {
header($_SERVER["SERVER_PROTOCOL"] . ' 200 OK');
header('Content-Type: ' . $mimetype);
header('Last-Modified: ' . gmdate('r', filemtime($filename)));
header('ETag: ' . sprintf('%x-%x-%x', fileinode($filename), filesize($filename), filemtime($filename)));
header('Content-Length: ' . (filesize($filename)));
header('Connection: close');
header('Content-Disposition: attachment; filename="' . basename($filename) . '";');

$f=fopen($filename, 'r');
while(!feof($f)) {

echo fread($f, 1024);
flush();
}
fclose($f);
} else {
header($_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found');
header('Status: 404 Not Found');
}
exit;
}
// Применение этой функции
$db=Base::db_connect();
$id_per = $_SESSION['id_per'];
$id_ap = sanitize($_POST['id_ap'],$db);
if (!isset($id_per) && !isset($id_up))
{
echo "<br/>".YOU_ARE_NOT_LOGGED_FIELD;
}
else
{
$dir = "../../catalog/$id_per/$id_ap/logs/";
$name = scandir($dir);
for($i=2; $i<=(sizeof($name)-1); $i++) {
file_download($dir.$name[$i]);
}

}


Так скачевается только один файл. И это наверное из-за того, что при первом вызове функции - заголовки уже отправлены. Как скачать несколько файлов за раз или скачать вообще всю папку с файлами?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.