Я пытаюсь использовать этот [API] [1]:
Я использовал Postman для тестирования API, и он работает нормально, я могу получить нужный мне результат.
Но когдаЯ пытаюсь использовать API через мой сервер. Я получаю ответ HTTP_CODE: 414 от CURL.На самом деле я не могу заставить его работать через сервер.
Я кодирую файл с base64 и отправляю запрос CURL, но он не принимает его: URL слишком длинный.
Как я могуиспользовать этот API, чтобы заставить его работать?
Другое предложение API с прямой загрузкой файла просто не могу понять, как отправить файл параметров из $ _FILES.
Iпопробовал второе предложение сначала получить URL загрузки, затем сделать новый запрос CURL и добавить CURL_OPT_POSTFIELDS с параметром файла из $ _FILES, но API отвечает просто «ложь».Однако я не могу заставить его работать, когда использую POSTMAN и выбираю локальный файл на моем ПК.Он создает запрос CURL с границей и параметр файла с filepath, но я не могу воспроизвести это.
--Curl Info Result:
{
"url":"https:\/\/application.bitrix24.de\/rest\/disk.folder.uploadfile?auth=AUTHKEY70&id=87&data[NAME]=FILENAME.PNG&fileContent=<!--HERE IS THE BASE64 ENCODED STRING WITH OVER 760000 CHARS--!>",
"content_type":"text\/html",
"http_code":414,
"header_size":162,
"request_size":16384,
"filetime":-1,
"ssl_verify_result":0,
"redirect_count":0,
"total_time":0.043392,
"namelookup_time":0.007397,
"connect_time":0.01181,
"pretransfer_time":0.034394,
"size_upload":81920,
"size_download":193,
"speed_download":4488,
"speed_upload":1905116,
"download_content_length":193,
"upload_content_length":-1,
"starttransfer_time":0.034398,
"redirect_time":0,
"redirect_url":"",
"primary_ip":"-----",
"certinfo":[
],
"primary_port":443,
"local_ip":"-----",
"local_port":39962
}
--This is the POSTMAN Code which worked and uploaded the file I cut out the
--full base64 code as it is over 760.000 Chars, I have the exact same Code on --my Serverside but if it is loaded from my Server it says 414 URI too long.
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https:/application.bitrix24.de/rest/disk.folder.uploadfile?auth=AUTHKEY",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"id\"\r\n\r\n87\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"data[NAME]\"\r\n\r\nFILENAME.png\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"fileContent\"\r\n\r\n<!-HERE IS THE BASE64 CODE WITH OVER 760000 CHARS--!>\n\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/x-www-form-urlencoded",
"Postman-Token: 42f691e9-6bb3-4328-9885-c110bc625eb6",
"cache-control: no-cache",
"content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
--Postman Result:
{
"result": {
"ID": 109,
"NAME": "FILENAME.png",
"CODE": null,
"STORAGE_ID": "11",
"TYPE": "file",
"PARENT_ID": "87",
"DELETED_TYPE": 0,
"GLOBAL_CONTENT_VERSION": 1,
"FILE_ID": 109,
"SIZE": "130880",
"CREATE_TIME": "2019-03-27T18:19:34+03:00",
"UPDATE_TIME": "2019-03-27T18:19:34+03:00",
"DELETE_TIME": null,
"CREATED_BY": "1",
"UPDATED_BY": "1",
"DELETED_BY": null,
"DOWNLOAD_URL": "https://application.bitrix24.de/rest/download.json?auth=11a19b5c002e73c2002e73c000000001e0e3033f51053b7b06eed324ebf459c859f57a&token=disk%7CaWQ9MTA5Jl89RXI3UUpRWkJhdVpUa1ZGczc2MWdXUzBUMVIybU5ZM00%3D%7CImRvd25sb2FkfGRpc2t8YVdROU1UQTVKbDg5UlhJM1VVcFJXa0poZFZwVWExWkdjemMyTVdkWFV6QlVNVkl5YlU1Wk0wMD18MTFhMTliNWMwMDJlNzNjMjAwMmU3M2MwMDAwMDAwMDFlMGUzMDMzZjUxMDUzYjdiMDZlZWQzMjRlYmY0NTljODU5ZjU3YSI%3D.txfoa2cB%2BHZPdP%2BdDIX%2F6p8%2BYvJV4XHQ9%2FNUtj4UWzU%3D",
"DETAIL_URL": "https://application.bitrix24.de/docs/file/FOLDER/FILENAME.PNG"
},
"time": {
"start": 1553699972.8649,
"finish": 1553699974.3043,
"duration": 1.4394969940186,
"processing": 1.0332419872284,
"date_start": "2019-03-27T18:19:32+03:00",
"date_finish": "2019-03-27T18:19:34+03:00"
}
}
Expected result is that the file is being uploaded like it is possible with postman.
[1]: https://training.bitrix24.com/rest_help/disk/folder/disk_folder_uploadfile.php