我试图为我的RaspberryPi创建某种云。用户可以登录,上传和下载他们有权访问的文件。
为了提供这种安全性,文件存储在目录“/ var / www / files /”中,因此在某个地方浏览器无法直接访问它们。
通过PHP,应启动下载(在检查用户权限之后)。
上传文件的逻辑,并显示我已经实现的存储文件,但我很难找到如何下载文件的解决方案。
上传正在使用ajax调用,不确定是否可以使用该方法进行下载。
答案 0 :(得分:1)
您可以使用PHP下载网站根目录之外的文件。这很简单:
<?php
$path = <path to the file to be downloaded>;
readfile($path);
请参阅:http://php.net/manual/en/function.readfile.php
确保您有权访问该文件,并将此PHP代码放在浏览器可访问的文件中。使用几个标题可以使它更好:
<?php
$path = <path to the file to be downloaded>;
$name = 'Your download name';
$size = filesize($path);
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.$name);
header('Content-Transfer-Encoding: binary');
header('Connection: Keep-Alive');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: '.$size);
readfile($path);
但最终它完全一样。如果您想进行一些身份验证,可以在PHP中执行此操作。