У меня есть PHP-скрипт, который отправляет сообщение в Mixcloud и получает сообщение об ошибке, которое мне не удалось устранить.
Это использует PHP 7.3.6 и curl, как я видел в других постах в качестве примера.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://api.mixcloud.com/upload/?access_token=$mixcloud");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 60 * 10);
curl_setopt($ch, CURLOPT_NOPROGRESS, true);
$server_output = curl_exec($ch);
curl_close ($ch);
// load json response into array
$res = json_decode($server_output, true);
echo print_r( $post, true );
echo print_r($res, true);
Загрузка не удалась со следующим отправленным сообщением:
Array
(
[mp3] => @/var/share_ro/fullshow/surface.mp3
[name] => Upload title
[description] => Upload description
[picture] => @/var/share_ro/fullshow/avatar.png
[tags-0-tag] => Tag1
[tags-1-tag] => Tag2
[tags-2-tag] => Tag3
[tags-3-tag] => Tag4
[tags-4-tag] => Tag5
)
и ответом:
Array
(
[details] => Array
(
[mp3] => Array
(
[0] => This field is required.
)
)
[error] => Array
(
[message] =>
[type] => PostValidationError
)
)
Однако полный путь к файлусуществует, и я пробовал с и без начального @
в имени файла:
$ ls -lah /var/share_ro/fullshow/surface.mp3
-rw-r--r-- 1 user mp3 79M Jun 11 16:08 /var/share_ro/fullshow/surface.mp3
Может кто-то увидеть, что я делаю неправильно?