Have a problem with FB PHP API and php 5.5 with uploading photo to server. When using method :
private function _upload( $type = '', $path = '', $message = '', $aid = '' ) {
try {
if ( !in_array( $type, array( 'photos', 'videos' ) ) ) {
throw new \Exception( 'Error: Incorrect type ' );
}
if ( !self::getFB()->getUser() ) {
throw new \Exception( 'Error: No user' );
}
if ( empty( $path ) ) {
throw new \Exception( 'Error: path is empty' );
}
if ( !file_exists( realpath( $path ) ) ) {
throw new \Exception( 'Error: file doesn\'t exists' );
}
if ( !empty( $aid ) ) {
$url = "/" . $aid . "/" . $type;
} else {
$url = '/' . self::getFB()->getUser() . '/' . $type;
}
var_dump( array( $url, 'POST',
array(
'image' => '@' . realpath( $path ),
'message' => $message,
)
)
);
self::getFB()->setFileUploadSupport( TRUE );
$ret_obj = self::getFB()->api( $url, 'POST', array(
'image' => '@' . realpath( $path ),
'message' => $message,
)
);
return $ret_obj[ 'id' ];
} catch ( \Exception $e ) {
return $e->getMessage();
}
}
I get error : curl_setopt_array(): The usage of the @filename API for file uploading is deprecated. Please use the CURLFile class instead
You're using PHP 5.5 with the old way of uploading over CURL. Check out the differences at https://wiki.php.net/rfc/curl-file-upload
curl_setopt($curl_handle, CURLOPT_POST, 1);
$args['file'] = '@filename.png';
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $args);
curl_setopt($curl_handle, CURLOPT_POST, 1);
$args['file'] = new CurlFile('filename.png', 'image/png');
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $args);