floydback
Новичок
Скачивание mp3 файлов через скрипт
Здравствуйте!
Сразу прошу прощения у модераторов, если тему поместил не в подходящий форум, подходящий не нашел.
У меня такая задача: нужно отдавать файлы mp3 через скрипт, чтобы убрать возможность тотального скачивания и как-то вести отчет скачиваемости файлов.
В общем, все стандартно.
Защита от скачивания такая: создаю сессии в БД перед скачкой (почему не просто сессии - 2 сервера: на одном сайт, на втором файлы mp3)
При успешной проверки сессии - отдаю файл mp3 через скрипт.
И тут возникает проблема: у некоторых пользователей (по всей видимости их гораздо меньше, чем у тех, у кого все скачивает нормально) файлы скачиваются наполовину (или меньше) и, либо, если это опера, выдает ошибку на половине закачки, либо, если это IE, просто скачивает mp3 файл наполовину.
У меня и во многих местах, где я тестировал во всех браузерах все отлично скачивается.
Заголовки отдаю вроде правильно, перепробовал несколько сторонних скриптов по скачке через php файл, т.к. уже думал сам ошибаюсь в загаловках - безрезультатно ((
Вот пример простого варианта кода без "докачек" и т.п., который не работает:
Content-type: application/octet-stream тоже пробовал, все аналогично.
При скачивании по прямой ссылке с сервера, все хорошо.
Я не знаю как решить эту проблему, тем более протестировать ошибку не могу - везде где тестил все было удачно.
Возможно проблема в настройках на хостинге?
Подскажите у кого какие мысли есть.
Спасибо.
Здравствуйте!
Сразу прошу прощения у модераторов, если тему поместил не в подходящий форум, подходящий не нашел.
У меня такая задача: нужно отдавать файлы mp3 через скрипт, чтобы убрать возможность тотального скачивания и как-то вести отчет скачиваемости файлов.
В общем, все стандартно.
Защита от скачивания такая: создаю сессии в БД перед скачкой (почему не просто сессии - 2 сервера: на одном сайт, на втором файлы mp3)
При успешной проверки сессии - отдаю файл mp3 через скрипт.
И тут возникает проблема: у некоторых пользователей (по всей видимости их гораздо меньше, чем у тех, у кого все скачивает нормально) файлы скачиваются наполовину (или меньше) и, либо, если это опера, выдает ошибку на половине закачки, либо, если это IE, просто скачивает mp3 файл наполовину.
У меня и во многих местах, где я тестировал во всех браузерах все отлично скачивается.
Заголовки отдаю вроде правильно, перепробовал несколько сторонних скриптов по скачке через php файл, т.к. уже думал сам ошибаюсь в загаловках - безрезультатно ((
Вот пример простого варианта кода без "докачек" и т.п., который не работает:
PHP:
//$filename - путь к файлу
// ...
if (!file_exists($filename))
{
header ("HTTP/1.0 404 Not Found");
exit;
}
// размер файла
$fsize = filesize($filename);
// дата модификации
$ftime = date("D, d M Y H:i:s T", filemtime($filename));
if (!$handle = @fopen($filename, "rb"))
{
header ("HTTP/1.0 403 Forbidden");
exit;
}
header("HTTP/1.1 200 OK");
header('Content-Type: audio/mpeg');
header("Content-Disposition: attachment; filename=\"".basename($filename)."\"");
header("Last-Modified: {$ftime}");
header("Accept-Ranges: bytes");
header("Content-Length: ".$fsize);
while(!feof($handle))
{
$buf = fread($handle,512);
print($buf);
}
fclose($handle);
При скачивании по прямой ссылке с сервера, все хорошо.
Я не знаю как решить эту проблему, тем более протестировать ошибку не могу - везде где тестил все было удачно.
Возможно проблема в настройках на хостинге?
Подскажите у кого какие мысли есть.
Спасибо.