Я пытаюсь отправить POST необработанный двоичный файл вместе с некоторыми другими данными, используя cURL. В принципе, я сделал это:Отправка сырого двоичного файла и данных с помощью 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() (например), так что это не физический файл на диске. Если я просто заменил CURL-файл, чтобы отправить данные двоичного файла с переменной «filedata», он просто не работает. Веб-служба не распознает файл. Возможно, есть способ создать CURL-файл, не указывая на настоящий файл.
Ваш вопрос заключается в том, как отправлять данные, которые не являются реальным файлом на диске? – fico7489
Мой вопрос заключается в том, как отправить ФАЙЛ, который не был сохранен на диске сервера (например, файл, полученный из базы данных или вывод ob_get_contents()), вместе с другими обычными почтовыми данными с использованием cURL. – greg
По определению слова 'FILE' он хранится на диске в' папке', в противном случае это просто контент. Файловые и файловые системы - это всего лишь парадигмы о том, как хранятся данные, вы просто хотите отправить контент, который ничем не отличается от отправки строки имени пользователя. –