我正在下载并将文件从另一台服务器保存到我的服务器,但我正在下载的文件附带了一个访问令牌。
http://www.example.com/video.mp4?versionId=c_.Qeh.dz.zqPA3zc57HFDKEAmKG3xr2
加载以下内容会导致权限错误:
http://www.example.com/video.mp4
问题是,当我使用以下代码时:
$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,这意味着我之后无法对其进行任何操作,因为它不是.mp4
这里有什么解决方案?我试过了
rename(video.mp4?versionId=c_.Qeh.dz.zqPA3zc57HFDKEAmKG3xr2, video.mp4)
但它需要文件名,访问令牌正在阻止它。
答案 0 :(得分:0)
尝试使用parse_url
代替basename
或合并它们。从parse_url
(没有GET参数)获取路径,然后使用basename
函数。
答案 1 :(得分:0)
尝试basename( parse_url( $url, PHP_URL_PATH ) )