Soundcloud API上传突然抛出代码422

时间:2015-11-17 09:36:58

标签: php soundcloud

现在使用PHP Soundcloud API已经有一段时间了,它一直运行良好。我用来创建轨道数组的代码是(并且一直是):

$track = json_decode($client->post('tracks', array(
  'track[title]' => $title,
  'track[asset_data]' => $filename,
  'track[description]' => $desc,
  'track[genre]' => "Podcast",
  'track[artwork_data]' => $image
)));

它一直工作得很好 - 直到今天早上,当我使用我自制的PHP工具上传曲目时收到此错误消息:

致命错误:未捕获的异常'Services_Soundcloud_Invalid_Http_Response_Code_Exception',消息'请求的URL以HTTP代码422响应。'在/home/csicon/public_html/PodcastAuthor/lib/Soundcloud.php:943堆栈跟踪:#0 /home/csicon/public_html/PodcastAuthor/lib/Soundcloud.php(621):Services_Soundcloud-> _request('{{3 }','数组)#1 /home/csicon/public_html/PodcastAuthor/2-publish.php(52):Services_Soundcloud-> post('tracks',Array)#main {main}抛入/ home第943行/csicon/public_html/PodcastAuthor/lib/Soundcloud.php

现在,我不是新手,并且知道HTTP代码422是什么,所以我检查了$ title,$ filename,$ desc和$ image的内容。它们按顺序排列:

Geekdays #274: 2015-11-17

@/home/csicon/public_html/PodcastAuthor/uploads/g274.mp3

Snowden, the FBI and the Oxford Dictionary are getting blamed for things that they may or may not have done. Also; the air you're breathing might be killing you. This, and so much more, on today's episode of Geekdays.

@/home/csicon/public_html/wp-content/uploads/2014/10/geekdays-600x600.png

所有路径(对于mp3和图像)都检查出来,在使用的字符集中没有什么不可思议的,而且之前都有效。这里可能发生了什么?我很难过。

UPDATE!原来我的webhost已经将他们的PHP环境从5.4升级到5.6,这就是打破它的原因。在这种情况下,可能导致这种情况的5.4和5.6之间发生了什么变化?

2 个答案:

答案 0 :(得分:0)

  

原来我的webhost已经将他们的PHP环境从5.4升级到5.6,这就是打破它的原因。在这种情况下,可能导致这种情况的5.4和5.6之间发生了什么变化?

如何处理cURL文件上传已更改。

从PHP 5.6开始,

CURLOPT_SAFE_UPLOAD默认设置为true,这意味着使用@ - 文件路径语法不再能够上传文件,但是{{1}应该用于文件上传。

尝试使用setCurlOptions方法将CURLFile设置为CURLOPT_SAFE_UPLOAD

答案 1 :(得分:0)

当我更改为curl-file分支的sebdesign/php-soundcloud版本时,神奇地开始工作。但不确定为什么“普通”卷曲文件分支不起作用。