Этот ответ подробно описывает, как использовать страницу переноса для регистрации загрузки, а также начать загрузку файла, как только кто-то щелкнет ссылку. Я недавно проверил это для щелчка правой кнопкой мыши.
Я использую php-посредника для регистрации загрузок файлов. URL в формате http://192.168.1.1/xfer.php?file=Li9zb25ncy9HTE9XX0xlYXZlIFlvdXIgSGF0IE9uLm1wMw приводит к имени файла для файла Сохранить как ... и щелкает левой кнопкой мыши в Firefox.
Вот мой xfer.php
<?
$filename = base64_url_decode($_GET['file']);
if ($_GET['file']){
header("Cache-Control: public");
header("Content-Description: File Transfer");
header('Content-disposition: attachment; filename='.str_replace(" ", "_",basename($filename)));
header("Content-Transfer-Encoding: binary");
header('Content-Length: '. filesize($filename));
readfile($filename);
}
$fh = fopen("test.html","a");
fwrite($fh,basename($filename)."\n<br />");
fclose($fh);
function base64_url_decode($input) {
return base64_decode(strtr($input, '-_,', '+/='));
}
?>
А страница, которая ссылается на xfer.php:
$link = "xfer.php?file=".base64_url_encode("./songs/$key");
с $key
- именем файла, а songs
- папкой, в которой хранятся имена файлов.