rasshatay, вообще не сложно, все делается заголовками
http://annimon.com/code/416
тут все заголовки которые нужны есть
function upload($file, $name = false, $limit = 0) {
if (file_exists($file)) {
$stream = new SplFileObject($file, 'rb');
header('Content-Type: application/force-download');
header('Content-Description: inline; File Transfer');
header('Content-Disposition: attachment; filename="' . ($name ?: basename($file)) . '";', false);
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . $stream->getSize());
ob_clean();
while (!$stream->eof()) {
echo $stream->fread($limit ? 1024 * $limit : $stream->getSize());
sleep(1);
flush();
}
} else {
echo 'Что-то пошло не так!';
}
}
$file2 = 'files/22.png';
$file3 = 'files/icq.mp3';
#upload($file2, 'jkhsdakjasdfh.png', 1);
upload($file3, 'skjdhf.mp3', 2);