PHP文件传输 - 这是如何工作的?

时间:2016-04-08 12:30:31

标签: php linux apache download file-transfer

所以,在另一个QUESTION中,我得到了这个答案:

$filename="filetodownload.xyz";
$cf = realpath("/non-webaccessible-folder/".$filename);
$file=$cf;

header('Content-Disposition: attachment; filename="' . basename($cf) . '"');
header("Content-Length: " . filesize($cf));
header("Content-Type: application/octet-stream");
readfile(realpath($cf));

我能够通过使用顶部标题行来实现我的目的:

header('Content-Disposition: attachment; filename="' . basename($cf) . '"');

我对整个解决方案有一些问题,以增加我的理解:

1。使用basename()简单地从文件名中删除路径的目的是什么?

2. realpath()的目的是什么?在我的使用中,它似乎没有任何区别。根据我所发现的情况,它似乎只是标准化了'文件路径输入。这是对的吗?

3。我似乎不需要最后三行来完成这项工作:

header("Content-Length: " . filesize($cf));

header("Content-Type: application/octet-stream");

readfile(realpath($cf));

我需要它们吗?他们在做什么?我应该注意,我只是使用localhost进行测试,以防万一。

使用此方法提供文件下载时,我应该考虑哪些安全因素?

0 个答案:

没有答案