在使用PHP 5.5.0的Facebook PHP SDK中使用upload方法时发现此错误。这是一个简单的解决方法,直到Facebook决定退出并更新SDK。
这是尝试使用PHP 5.5.0上传图像或视频时会收到的错误类型:
curl_setopt(): The usage of the @filename API for file uploading is deprecated. Please use the CURLFile class instead
该修补程序由某人发布:http://snippetrepo.com/snippets/deprecated-curl-setopt-fix-in-facebook-php-sdk
这是由Facebook修复的吗?
答案 0 :(得分:0)
在使用PHP 5.5.0的Facebook PHP SDK中使用upload方法时发现此错误。这是一个简单的解决方法,直到Facebook决定放弃并更新SDK
这是尝试使用PHP 5.5.0上传图像或视频时会收到的错误类型:
curl_setopt():不推荐使用@filename API进行文件上传。请改用CURLFile类
要将修复程序导航到base_facebook.php文件并搜索:
if ($this->getFileUploadSupport()){
$opts[CURLOPT_POSTFIELDS] = $params;
} else {
$opts[CURLOPT_POSTFIELDS] = http_build_query($params, null, '&');
}
并替换为以下修复程序:
if ($this->getFileUploadSupport()){
if(!empty($params['source'])){
$nameArr = explode('/', $params['source']);
$name = $nameArr[count($nameArr)-1];
$source = str_replace('@', '', $params['source']);
$size = getimagesize($source);
$mime = $size['mime'];
$params['source'] = new CurlFile($source,$mime,$name);
}
if(!empty($params['image'])){
$nameArr = explode('/', $params['image']);
$name = $nameArr[count($nameArr)-1];
$image = str_replace('@', '', $params['image']);
$size = getimagesize($image);
$mime = $size['mime'];
$params['image'] = new CurlFile($image,$mime,$name);
}
$opts[CURLOPT_POSTFIELDS] = $params;
} else {
$opts[CURLOPT_POSTFIELDS] = http_build_query($params, null, '&');
}
http://snippetrepo.com/snippets/deprecated-curl-setopt-fix-in-facebook-php-sdk