У меня есть много файлов, хранящихся в NAS. NAS подключен к серверу как сетевой диск (допустим, он находится на Y: //).
Я использую xampp для обслуживания моего приложения, встроенного в php. Приложение было создано для того, чтобы пользователи могли загружать файлы из NAS напрямую через http вместо ftp.
Так можно ли установить файлы из NAS, чтобы их можно было загрузить с помощью http URL, например example.com/files/the-file.zip?
Xampp находится в каталоге C: //
Примечание: xampp htdocs уже настроен на доступ к домену. Так что это не проблема указания домена
Вы можете попробовать это через PHP:
<?php
$downloadFolder = 'Y:/';
$fileName = $downloadFolder . $_GET['file'];
$sanitizedFileName = realpath($fileName);
if($fileName !== $sanitizedFileName) {
throw new RuntimeException('Someone tried to escape');
}
// As seen in http://php.net/readfile:
if (file_exists($fileName)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($fileName).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($fileName));
readfile($fileName);
exit;
}
Или найдите способ запустить все через .htaccess, но это может дать вам меньше контроля над обработкой безопасности (возможно, вы не хотите обслуживать файлы из других каталогов или других дисков)
Других решений пока нет …