Предположим, у меня есть устройство, которое знает имя файла, который они хотят загрузить с моего сервера.
Как я могу передать указанный файл на это устройство, не предоставляя устройству доступ к файловой системе?
Например, предположим, что у меня есть страница ping.php, которая получает запрос get для «thing.zip «
ping.php знает, где находится что-то .zip (где-то в файловой системе сервера), но я не могу разрешить пользователям доступ к файловой системе или позволить им узнать местоположение файла (его даже нужно скрыть от кого-то, использующего что-то вроде wireshark).
Как я могу решить эту проблему?
Это может быть простое решение, я просто не очень хорошо разбираюсь в этих вопросах.
Если будет какая-то разница, я буду использовать сервер Apache на Linux-боксе.
Вы можете создать сценарий PHP для облегчения передачи файла, когда файл находится в папке, недоступной через Интернет. Так я обычно выполняю загрузку файлов в моей системе.
Существует любое количество примеров сценариев, которые вы можете использовать для фактической передачи файлов. Ключ в том, чтобы поместить этот файл за пределы файловой системы, доступной через Интернет.
Для полноты вот код, который я использовал в прошлом для загрузки файлов на PHP:
$filename="filetodownload.xyz";
$cf = realpath("/non-webaccessible-folder/".$filename);
$file=$cf;
header('Content-Disposition: attachment; filename="' . basename($cf) . '"');
header("Content-Length: " . filesize($cf));
header("Content-Type: application/octet-stream");
readfile(realpath($cf));
Других решений пока нет …