3

So I have the problem that the url of my file is too long in my php script.

At the moment the Path of my file is:

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

But I want to shorten it so that its the path beginning from my website directory and it's a working url.

website.tld/page/downloads/file.mp3

The code that creates that path is this:

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

$file gets its value from this function:

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

It's the code from the GitHub project Youtube-dl-WebUI(code here) (function here) but it's not working for me like this.

I've read that you can remove the parts of a string that you don't need, but I don't have clue how I can implement that, because I have never worked with php before.

SummerRain
  • 33
  • 1
  • 5
  • Welcome to stack overflow. Can you motivate your question? Why is the download path too long? And while you think about it, please first check if the path you mention can be valid (I think it cannot). Finally, please tell us where your script is located in the path. – KIKO Software Aug 21 '16 at 16:14

3 Answers3

1

There is a difference between path and URL. When you create the link you should use the short form for the URL, so basically:

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

You may need to create a getter if config is private.

But internally you should still use the full path, which seems to be implemented correctly.

Boris Schegolev
  • 3,601
  • 5
  • 21
  • 34
0

I think you try to download in Window, readmore :)

Why does the 260 character path length limit exist in Windows?

Change your web root to shorter or setup your service in ubuntu with VMware :)...

Community
  • 1
  • 1
HoangHieu
  • 2,802
  • 3
  • 28
  • 44
  • The path is not too long in terms of characters, but it's just the wrong path. I get a working link on the page, but the downloadpath is wrong. – SummerRain Aug 21 '16 at 16:52
0

The problem was that the output was the full path to the download directory but the only part I needed was the exact directory.

Instead of "/var/www/vhosts/my_hostname/website/page/downloads/" that was given by $file now it only gives "downloads" to build the url.

Now it's working.

SummerRain
  • 33
  • 1
  • 5