Здравствуйте. Может быть кто-то сталкивался с такой задачей: нужно отправить файл с формы(на стороннем сайте) на Битрикс24 Диск(хранилище). Суть такова: получив вебхук на битрикс24 я с помощью метода(disk.storage.getlist) по rest api возвращаю список всех хранилищ(нужен ID хранилища). Далее с помощью метода(disk.storage.getchildren) и получившего ранее ID возвращаю список файлов и папок в хранилища(беру отсюда ID папки, в которую собираюсь отправлять файл). Следующий шаг, метод(disk.folder.uploadfile) и ID папки мне возвращают массив вида:
Код |
---|
"result": { "field": "file", "uploadUrl": "url, куда грузить файл" } |
Собственно мой cUrl:
Код |
---|
$name = $_FILES['file-upload']['name']; $path = $_FILES['file-upload']['tmp_name']; $type = $_FILES['file-upload']['type']; $size = $_FILES['file-upload']['size']; //указываем, куда мы хотим загрузить фаил(на сервере) $upload_dir = "../upload/resume/" . $name; //data $fields = array( 'file' => file_get_contents($upload_dir), ); //заголовки $headers = array( "Content-Type: multipart/form-data", ); //начало сеанса curl $curl_post = curl_init(); curl_setopt($curl_post, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl_post, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($curl_post, CURLOPT_URL, $url_for_post); // url на который нужно отправлять фаил curl_setopt($curl_post, CURLOPT_HEADER, 0); curl_setopt($curl_post, CURLOPT_POST, 1); curl_setopt($curl_post, CURLOPT_HTTPHEADER, $headers); //заголовки curl_setopt($curl_post, CURLOPT_POSTFIELDS, $fields); //отправляемые данные $res = curl_exec($curl_post); curl_close($curl_post); //конец сеанса curl echo '<pre>'; print_r($res); print_r(json_decode($res, true)); echo '</pre>'; |
Код |
---|
( [error] => DISK_BASE_SERVICE_22001 [error_description] => Error: required parameter file (DISK_BASE_SERVICE_22001). ) |
Прошу помощи, скорее всего я не правильно составляю curl. Или есть каки-то другие идеи. Заранее спасибо!