0

私の悪い英語で申し訳ありません..

私はあなたにいくつかの問題を抱えてまた来ます!

以下のコード行を使用します。

$link = $_GET['url'];
$name = $_GET['name'];
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: private");
header("Content-Disposition: attachment; filename=\"(wanted-web.ro) $name.mp3\"");
header("Content-type: audio/mpeg;\r\n");
readfile(str_replace(' ', '_', $link));

そのコードは、外部サーバーからの直接リンク .mp3 のダウンロードに使用されます。

私の問題は次のとおりです。&文字を含むファイルをダウンロードすると、その文字の後に残りの情報が表示されません!!

例: リアーナ & エイコン

.. 常にRihannaという名前でファイルを保存してください.. 正しくはRihanna & Akonでしたが、アンプの文字が表示されなくなり、Akonになりました

いろいろな方法を試しましたが、いつも失敗します..

より良い説明のために、そのスクリプトは php ダウンロード ファイルです.. クリックしてRihanna & Akonをダウンロードすると、プロンプト ダウンロード ボックスが表示されます! ダウンロード ボックスにはRihannaのみが表示されますが、 Rihannaの後に& characterが含まれている場合はAkonとは表示されません

何かを理解したい!

前もって感謝します !!乾杯!

4

2 に答える 2

0

urlencode次のように、ファイル名を試してください。

$name = urlencode($_GET['name']);
于 2013-02-26T17:31:48.533 に答える
0

上記のコードサンプルのエンコーディングは

header("Content-Disposition: attachment; filename=\"(wanted-web.ro) "
  .urlencode($name). ".mp3\"");
于 2013-02-26T17:34:19.130 に答える