2016-08-21 8 views
3

私のファイルのURLがPHPスクリプトで長すぎるという問題があります。PHPファイルのダウンロードが長すぎます

現時点では私のファイルのパスは次のとおりです。

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

しかし、私はそのパスは私のウェブサイトのディレクトリから始まり、それが働いたURLだように、それを短くしたいです。

website.tld/page/downloads/file.mp3 

そのパスを作成するコードはこれです:

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

$ファイルは、この関数から値を取得します。

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

それはGitHubのプロジェクトYouTubeのコードです-dl-WebUI(code here(function here)これは私のためにはうまくいきません。

私は、あなたが必要としない文字列の部分を削除することができますが、これまで実装できなかった文字列の部分を削除できることを読んだことがあります。

+0

ようこそスタックオーバーフロー。あなたはあなたの質問を動機づけることができますか?ダウンロードパスが長すぎるのはなぜですか?そして、あなたがそれについて考えている間は、あなたが言及したパスが有効であるかどうかをまず確認してください(私はそれはできないと思います)。最後に、あなたのスクリプトがどこにあるか教えてください。 –

答えて

1

パスとURLには違いがあります。リンクを作成するとき、あなたはとても基本的に、URLの短縮形を使用する必要があります。

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

あなたは設定がプライベートであれば、ゲッターを作成する必要があります。

内部的には完全なパスを使用する必要がありますが、これは正しく実装されているようです。

+0

ありがとう、私が探していたラインでした。 – user6679493

0

私はあなたがウィンドウにダウンロードしようと考えて、readmore :)

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

は、VMwareとUbuntuの中にあなたのサービス短いまたはセットアップにWebルートを変更し

:)...

+0

パスは文字の点で長すぎるわけではありませんが、間違ったパスです。 ページ上で動作するリンクが表示されますが、ダウンロードパスが間違っています。 – user6679493

0

問題出力はダウンロードディレクトリへのフルパスでしたが、必要なのは正確なディレクトリだけでした。

$ fileによって与えられた "/ var/www/vhosts/my_hostname/website/page/downloads /"の代わりに、URLを構築するための "ダウンロード"のみが提供されます。

これで動作します。

関連する問題