PHP:使根文件夹中上传的文件(不是公共的html)仅对登录用户可访问?

PHP:使根文件夹中上传的文件(不是公共的html)仅对登录用户可访问?,php,security,file-upload,download,Php,Security,File Upload,Download,我制作了一个上传表单,并将文件存储在根“../upload\u file”文件夹中 问题是授权登录用户如何才能下载上传的文件?因为浏览器无法处理根url,例如:www.web.com/。/upload\u file/test.pdf 我是新手 谢谢:D 好的,我想说清楚。实际上,我的问题类似于: 其中未解决您需要创建一个php脚本,该脚本将对用户进行身份验证,然后在php脚本中输出上传文件的内容。在设置输出文件的标题之前,请确保不回显任何内容。应该有关于如何将文件内容加载到变量中的代码 $fil

我制作了一个上传表单,并将文件存储在根“../upload\u file”文件夹中

问题是授权登录用户如何才能下载上传的文件?因为浏览器无法处理根url,例如:www.web.com/。/upload\u file/test.pdf

我是新手

谢谢:D

好的,我想说清楚。实际上,我的问题类似于:


其中未解决

您需要创建一个php脚本,该脚本将对用户进行身份验证,然后在php脚本中输出上传文件的内容。在设置输出文件的标题之前,请确保不回显任何内容。应该有关于如何将文件内容加载到变量中的代码

$fileContents = file_get_contents("test.pdf");

header("Cache-Control: public, must-revalidate");
header("content-disposition: attachment; filename=test.pdf");
header("content-type: application/pdf");
header("content-length: " . strlen($fileContents));

//output file contents
echo $fileContents;

用户永远不能直接访问上载文件夹

访问控制取决于您的服务器操作系统和服务器,如Windows ServerIIS或LinuxApache、Ngix

保护文件不被URL访问的最佳方法是在webroot之外设置上载路径。并且该文件只能由服务器访问

更新:如何按用户访问文件

创建一个名为readpdf.php的php文件

header("Content-type:application/pdf");
//if you just want to show the file on broswer, delete the line below
header("Content-Disposition:attachment;filename='downloaded.pdf'");
readfile("progit.pdf");

通过访问

查找PHP函数文件_get_contents来读取文件,将文件内容读入$fileContentshow在PHP脚本中输出上传文件的内容?在设置标题后使用echo命令,就像我在代码段中所做的那样。$fileContents=file_get_contents test.pdf;我修复了脚本,因为我将内容配置设置为内联而不是附件。用户如何访问这些文件;校长内容倾向:依恋;filename='download.pdf';readfileprogit.pdf;文件是否仍然可以使用downloader softw下载。。像IDM?感谢该文件位于您的web根目录之外,因此用户只能通过访问您的readpdf.php,而不能通过键入任何url下载该文件。