在PHP

时间:2018-11-06 16:34:08

标签: php file-upload 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 中。
创建后,我知道程序包ID。

0 个答案:

没有答案