2013-06-22 106 views
0

我正在下載並將另一臺服務器上的文件保存到我的服務器上,但我正在下載的文件附帶有訪問令牌。cURL保存文件並重命名?

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

嘗試使用parse_url而不是basename或將它們組合。從parse_url(不帶GET參數)取道,然後使用basename函數。

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

+0

謝謝,我很擔心,如果我解析來自網址的查詢,我將無法捲曲的文件,我就失去了訪問令牌。我會盡快給您回覆。 –

+0

好的,接縫能夠完美地工作。謝謝一堆! –

0

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