现在使用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之间发生了什么变化?
答案 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版本时,神奇地开始工作。但不确定为什么“普通”卷曲文件分支不起作用。