загрузка файла — создание ресурса ckan в переполнении стека

Я борюсь с методом CKan resource_create.

На самом деле я хотел бы создать новый ресурс с CSV-файлом, хранящимся в локальной папке, в пакете, который я ранее создал с помощью Ckan API.

Я использую функцию ckan.logic.action.create.resource_create(увидеть https://docs.ckan.org/en/2.8/api/#ckan.logic.action.create.resource_create

Я нашел некоторый код на GitHub и попытался сделать это, но он не создает ресурс с файлом.

Вот мой код:

$httpheader = array(
'Content-Type' => 'application/json',
'Authorization' => 'Authorization:MyCkanKey'
);

$filepath = "./data.csv";
$file="";
if( function_exists('curl_file_create') ){

$finfo = finfo_open(FILEINFO_MIME_TYPE) ;
$mimetype = finfo_file($finfo ,$filepath ) ;
$file = curl_file_create($filepath, $mimetype ,$filepath ) ;
echo " function exists  <br> Variable file= ";
print_r ($file) ;
}
else{
$file = "@$filepath;filename="."datalogger";
echo "function Doesnt exists";
}


$curlpost = array(
'package_id' => "8940920a-68ec-4b9f-bbff-b65477ab8b95",
'upload' =>$file,
'format' => "csv",
'description' => "Des donnees de releve de temperatures",
'name' => "datalogger");

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://192.168.2.223/api/3/action/resource_create");
curl_setopt($ch, CURLOPT_HTTPHEADER, $httpheader);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlpost);
$returnoutput = curl_exec($ch);
echo "<h3> curl output resource  :  ";
print_r($returnoutput);
echo "</h3>";

Параметры функции находятся в массиве $ curlpost.
Я знаю идентификатор пакета после его создания.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …