2013-06-22 3 views
0

Я загружаю и сохраняю файл с другого сервера на свой сервер, за исключением того, что загружаемый файл поставляется с токеном доступа.cURL сохранить файл и переименовать?

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, что означает, что я ничего не могу с ним поделать, поскольку это не .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

Спасибо, я волнуюсь, если я разобрать запрос из URL, я не буду иметь возможность завивать файл как я потеряю маркер доступа. Я вернусь к вам. –

+0

Хорошо, швы работать отлично. Огромное спасибо! –