Скачать файл с NAS, подключенный к серверу через http

У меня есть много файлов, хранящихся в NAS. NAS подключен к серверу как сетевой диск (допустим, он находится на Y: //).

Я использую xampp для обслуживания моего приложения, встроенного в php. Приложение было создано для того, чтобы пользователи могли загружать файлы из NAS напрямую через http вместо ftp.

Так можно ли установить файлы из NAS, чтобы их можно было загрузить с помощью http URL, например example.com/files/the-file.zip?

Xampp находится в каталоге C: //

Примечание: xampp htdocs уже настроен на доступ к домену. Так что это не проблема указания домена

0

Решение

Вы можете попробовать это через 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, но это может дать вам меньше контроля над обработкой безопасности (возможно, вы не хотите обслуживать файлы из других каталогов или других дисков)

0

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

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

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