Я пытаюсь отправить в POST необработанный двоичный файл вместе с некоторыми другими данными, используя cURL. В общем, я сделал так:
//Here i create the CURLFile
$cfile = new CURLFile($fullpath,'application/xml', $filename);
//Data to upload (including the file)
$data_upload = array('username' => $username,
'password' => $password,
'owner' => $owner,
'destination' => $pathpda,
'filename' => $filename,
'filedata' => $cfile);
//Upload
$ch_upload = curl_init($urlws.$e_upload);
curl_setopt($ch_upload, CURLOPT_POST,true);
curl_setopt($ch_upload, CURLOPT_POSTFIELDS, $data_upload);
curl_setopt($ch_upload, CURLOPT_RETURNTRANSFER, true);
$response_upload = curl_exec($ch_upload);
curl_close($ch_upload);
Все работало нормально. За исключением того, что теперь я хочу, чтобы мой файл был просто двоичными данными, а не реальным файлом на диске. Кроме того, мне нужно отправить другие данные в запросе! Кто-нибудь знает, как это сделать? Я искал в Google, но не смог найти способ сделать и то, и другое, отправив необработанный двоичный файл и другие данные. Спасибо!
ОБНОВЛЕНИЕ Чтобы уточнить мой вопрос, мне не нужно просто отправлять случайные двоичные данные, а файл, содержимое которого поступает из ob_get_contents() (например), поэтому это не физический файл на диске. Если я просто заменю CURLfile для отправки данных двоичного файла переменной «filedata», это просто не сработает. Веб-служба не распознает файл. Возможно, есть способ создать CURLfile, не указывая на реальный файл.
FILE
он хранится на диске в видеfolder
, иначе это просто содержимое. Файлы и файловые системы - это просто парадигмы того, как хранятся данные, вы просто хотите отправить контент, который ничем не отличается от отправки строки имени пользователя. - person Bas van Stein   schedule 04.11.2015