В терминале bash я успешно выполнил следующую команду.
curl -v -L -F file='@/var/www/dev/public_html/sixties.mov' -F title='my video' -F description='this is a video' -F language='eng' -F license='a2be14e1-37d9-11dd-ae16-0800200c9a66' -F country='US' http://johnuser:johnpass@website.com/api/media
Теперь я хочу создать скрипт PHP, который использует библиотеку phpcurl для выполнения эквивалентной команды.Мой код ниже показан, но он не работает.Сервер http://johnuser:johnpass@website.com/api/media
выдает мне общее сообщение об ошибке.Я почти уверен, что делаю ошибку, не передавая правильные параметры или устанавливая правильные флаги в моем php-коде.Может кто-нибудь сказать мне, что не так?
$url = 'http://johnuser:johnpass@website.com/api/media';
$fields = array();
$fields['file'] = '@/var/www/dev/public_html/sixties.mov';
$fields['title'] = 'my video';
$fields['description'] = 'this is a test';
$fields['language'] = 'eng';
$fields['country'] = 'US';
$fields['license'] = 'a2be14e1-37d9-11dd-ae16-0800200c9a66';
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string,'&');
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
print_r($result);
Я получил сообщение об ошибке {"status":{"message":"typeMismatch ","error":true,"code":500}}