1

別のサーバーから自分のサーバーにファイルをダウンロードして保存していますが、ダウンロードしているファイルにはアクセス トークンが添付されています。

http://www.example.com/video.mp4?versionId=c_.Qeh.dz.zqPA3zc57HFDKEAmKG3xr2

以下を読み込むと、パーミッション エラーが発生します。

http://www.example.com/video.mp4

問題は、次のコードで cURL を実行したときです。

$url = 'http://www.example.com/video.mp4?versionId=c_.Qeh.dz.zqPA3zc57HFDKEAmKG3xr2';
$fh = fopen(basename($url), "wb");
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FILE, $fh);
curl_exec($ch);
curl_close($ch);

ファイルは video.mp4?versionId=c_.Qeh.dz.zqPA3zc57HFDKEAmKG3xr2 (トークン付き) として保存され、video.mp4 ではありません。

ここでの解決策は何ですか?私は試した

rename(video.mp4?versionId=c_.Qeh.dz.zqPA3zc57HFDKEAmKG3xr2, video.mp4) 

ただし、ファイル名が必要であり、アクセストークンがそれを妨げています。

4

2 に答える 2

0

試すbasename( parse_url( $url, PHP_URL_PATH ) )

于 2013-06-22T18:29:10.440 に答える
0

parse_url代わりに使っbasenameたり、組み合わせたりしてみてください。parse_url(GET パラメータなしで)からパスを取得し、basename関数を使用します。

http://www.php.net/manual/en/function.parse-url.php

于 2013-06-22T17:57:53.117 に答える