Как насчет использования символических ссылок?Если у вас есть пример папки:
userfacingfiles/
md5_of_order_id1 --> protected-file.exe
md5_of_order_id2 --> protected-file.exe
protectedfiles/
.htaccess (contains deny from all)
protected-file.exe
Базовый пример:
$salt = 'canttouchthis';
function create_symlink($order_id, $salt, $protected_file)
{
$info = pathinfo('protectedfiles/'.$protected_file);
symlink('protectedfiles/'.$protected_file, 'userfacingfiles/'.md5($order_id.$salt).'.'.$info['extension']);
}
function get_file($order_id, $salt, $extension)
{
header('Location: userfacingfiles/'.md5($order_id.$salt).'.'.$extension);
exit();
}
использование:
Когда пользователь платит:
create_symlink(1, 'secureSALT', 'ebook.pdf');
Когда пользователь хочет загрузить свою электронную книгу
get_file(1, 'secureSALT');
Это может быть не самый переносимый метод, но поскольку вы перенаправляете пользователя, веб-серверобработка загрузок.