我在重构路由之后访问我的Web服务器上的文件时遇到问题。重组文件下载后存储在地址:使用数据库字符串访问文件的问题
http://mysite/submission/uploads/test.txt
以前它存储在:
http://mysite/uploads/test.txt
等从数据库中读取数据时/uploads/test.txt会的工作路径。 Iv最近更新了第一个示例中可见的路线,并更新了mongodb数据库中的内容。然而,由于上传文件夹在根和的download.php文件在提交文件夹从数据库IM假设点的路径:
http://mysite/mydownloadpage/submission/uploads/test.txt
在我的数据库
它包含文本的路径正好如下:
submission/uploads/test.txt
我试图前缀追加到字符串以指向一个目录回到根,但它不起作用:
../submission/uploads/test.txt
这似乎导致其INCLUDIN g,而不是将它指向根目录。
这里是一个被从数据库中传递的路径下载功能:
function download($path){
if(!file_exists($path)){
die('Error');
}else{
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename='.basename($path));
header('Content-Type: application/octet-stream');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
ob_start();
flush();
readfile($path);
exit;
}
}
if (isset($_GET['download'])) {
if (!empty($_GET['download'])) {
$file = $_GET['download'];
download($file);
}
}
任何帮助,将不胜感激。
您需要引用该目录。因此,在某处需要定义根目录。 'echo getcwd();'return?你的目录结构是什么样的? – Darren
这将返回我添加它的任何php文件的目录。即http:// mysite/download /或http:// mysite/submission /这可能会有所帮助,但我试图从不同的目录下载,所以download.php位于http:// mysite/download /中,并且文件位于HTTP:// mysite的/提交/上传 – D3181
我(*和许多其他*)做的是什么:'DEFINE( '根',GETCWD()DS);'就非常根'index.php'文件。一旦定义了一个根,你可以简单地引用它与适当的目录结构来实现你正在做的事情:'$ path = ROOT。 '/ submission/uploads /'。 $ the_file_name;'(*作为示例*)。除此之外,你需要引用绝对路径 - 我所提供的是一种常见的做法,保持统一和一致。 – Darren