Передача файлов PHP

Предположим, у меня есть устройство, которое знает имя файла, который они хотят загрузить с моего сервера.

Как я могу передать указанный файл на это устройство, не предоставляя устройству доступ к файловой системе?

Например, предположим, что у меня есть страница ping.php, которая получает запрос get для «thing.zip «

ping.php знает, где находится что-то .zip (где-то в файловой системе сервера), но я не могу разрешить пользователям доступ к файловой системе или позволить им узнать местоположение файла (его даже нужно скрыть от кого-то, использующего что-то вроде wireshark).

Как я могу решить эту проблему?

Это может быть простое решение, я просто не очень хорошо разбираюсь в этих вопросах.

Если будет какая-то разница, я буду использовать сервер Apache на Linux-боксе.

0

Решение

Вы можете создать сценарий 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));
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]