Вы можете использовать простой скрипт php. Этот скрипт возвращает в GET-файл в браузере.
После его исключения вы можете переименовать этот файл в произвольную строку.
это только первый человек скачать этот файл.
По вашей ссылке получится вот так. www.domain.tld / реж / script.php? Файл =. / USR / 123.tar.gz.
Вы также можете зашифровать имя файла в base64, в этом варианте ваша ссылка www.domain.tld / dir / script.php? File = Li91c3IvMTIzLnRhci5neg ==
Скрипт без base64:
<?php
$file = $_GET['file'];
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
rename($file, "secret_new_filename");
exit;
}
else
{
echo 'File don\'t exist';
}
?>
И с base64:
<?php
$file = base64_decode($_GET['file']);
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
rename($file, "secret_new_filename");
exit;
}
else
{
echo 'File don\'t exist';
}
?>