2016-08-21 105 views
3

所以我有我的PHP脚本中我的文件的URL太长的问题。PHP文件下载路径太长

目前我的文件的路径为:

website.tld/var/www/vhosts/my_hostname/website/page/downloads/file.mp3 

但我想缩短,使得其路径从我的网站目录开始,这是一个工作URL。

website.tld/page/downloads/file.mp3 

创建该路径的代码是这样的:

public function get_downloads_folder() 
    { 
      $path = $this->config["outputFolder"]; 
      if(strpos($path , "/") !== 0) 
      { 
        $path = dirname(__DIR__).'/' . $path; 
      } 
      return $path; 
    } 

这是一个从GitHub的项目的Youtube代码:

echo "<td><a href=\"".$file->get_downloads_folder().'/'.$f["name"]."\" download > ".$f["name"]."</a></td>"; 

$文件从该函数获取其值-dl-WebUI(code here(function here)但它不适合我这样工作。

我读过,你可以删除你不需要的字符串部分,但我不知道如何实现它,因为我从来没有使用过PHP。

+0

欢迎来到堆栈溢出。你能激励你的问题吗?为什么下载路径太长?当你考虑它时,请首先检查你提到的路径是否有效(我认为它不能)。最后,请告诉我们您的脚本在路径中的位置。 –

回答

1

路径和URL之间有区别。当你创建链接时,你应该使用URL的简写形式,所以基本上:

echo "<td><a href=\"".$file->config["outputFolder"].'/'.$f["name"]."\" download > ".$f["name"]."</a></td>"; 

如果config是私有的,你可能需要创建一个getter。

但内部你应该仍然使用完整的路径,这似乎是正确实施。

+0

谢谢,那是我正在寻找的路线。 – user6679493

0

问题是输出是下载目录的完整路径,但我需要的唯一部分是确切的目录。

而不是由$ file给出的“/ var/www/vhosts/my_hostname/website/page/downloads /”现在它只提供“下载”来构建url。

现在工作。