我有很多文件存储在NAS中。 NAS作为网络驱动器连接到服务器(假设它在Y://上)。
我使用xampp来提供我在php中构建的应用程序。该应用程序旨在为用户提供从NAS下载文件,直接通过http而不是ftp。
我可以从NAS设置文件,因此可以使用http URL下载,例如example.com/files/the-file.zip?
xampp位于C://目录
注意:xampp htdocs已设置为由域访问。所以它不是域名指向问题
答案 0 :(得分: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运行所有内容的方法,但这可能会减少对安全处理的控制(可能,您不想提供来自其他目录或其他驱动器的文件)