Сохраните mp3-файл по ссылке для скачивания на вашем хостинге, используя Stack Overflow

Я получаю данные из API поставщика услуг (скажем, http://serviceprovider.com).

Из нескольких параметров один является MP3 скачать Ссылка (пример- http://serviceprovider.com/storage/read?uid=475b68f2-a31b-40f8-8dfc-5af791a4d5fa_1_r.mp3&ip=255.255.255.255&dir=recording)

Когда я размещаю эту ссылку для загрузки в своем браузере, она сохраняется на моем локальном ПК.

Теперь моя проблема —

Я хочу сохранить этот MP3-файл в одной из папок на моем хостинге, откуда я смогу использовать его для воспроизведения с использованием JPlayer Audio.

я пытался file_get_contents(), но ничего не произошло.

Заранее спасибо.

Редактировать:

После прочтения Али Ответ я попробовал следующий код, но все еще не работает полностью.

// Open a file, to which contents should be written to.
$fp = fopen("downloadk.mp3", "w");
$url = 'http://serviceprovider.com/storage/read?uid=475b68f2-a31b-40f8-8dfc-5af791a4d5fa_1_r.mp3&ip=255.255.255.255&dir=recording';
$handle = curl_init($url);
// Tell cURL to write contents to the file.
curl_setopt($handle, CURLOPT_FILE, $fp);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_HEADER, false);// Do the request.
$data = curl_exec($handle);

// Clean up.
curl_close($handle);
fwrite($fp, $data);
fclose($fp);

Это создало файл download.mp3 на моем сервере, но с 0 байтами, т.е. пустым.
Используемая здесь ссылка является примером ссылки на скачивание, а не mp3-файлом, который можно воспроизводить напрямую с помощью современного браузера.

0

Решение

Функция file_get_contents используется для чтения локальных файлов. У вас есть URL-адрес, и для получения содержимого вам необходимо выполнить HTTP-запрос в вашем скрипте. PHP поставляется с расширением curl, которое предоставляет вам стабильную библиотеку функций для выполнения HTTP-запросов:

http://php.net/manual/en/book.curl.php

Использование curl для загрузки вашего файла может быть сделано так:

// Open a file, to which contents should be written to.
$downloadFile = fopen("download.mp3", "w");
$url = "http://serviceprovider.com/storage/read?uid=475b68f2-a31b-40f8-8dfc-5af791a4d5fa_1_r.mp3&ip=255.255.255.255&dir=recording";
$handle = curl_init($url);
// Tell cURL to write contents to the file.
curl_setopt($handle, CURLOPT_FILE, $downloadFile);
// Follow redirects.
curl_setopt($handle, CURLOPT_FOLLOWLOCATION, true);
// Do the request.
curl_exec($handle);
// Clean up.
curl_close($handle);
fclose($downloadFile);

Вы, вероятно, должны добавить некоторые проверки ошибок.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector