Отправить байтовые данные в запросе

Привет у меня проблемы с отправкой только байтовых данных в запросе

Я только хочу отправить [байты из потока данных] но я изо всех сил стараюсь убрать это из моей просьбы.

Кто-нибудь может мне помочь разобраться с этим через curl, пожалуйста.

-----------------------------7dc1f42e3005a8
Content-Disposition: form-data; name="upload"; filename="file.mp3"Content-Type: audio/mpeg

**[bytes from data stream]**

-----------------------------7dc1f42e3005a8--

Скручивание, которое я использую ниже, мне интересно, есть ли быстрый способ скручивания для отправки только определенной части нагрузки, в данном случае только байтовых данных.

$fp             = fopen($localfile['tmp_name'], 'r');
$ch             = curl_init();

curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true); // --data-binary
curl_setopt($ch, CURLOPT_URL, 'http://api.com/api/v4/track/upload?api_key=xxx&filetype=mp3');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/octet-stream'));

$response   = curl_exec($ch);

1

Решение

Вы можете использовать ниже решение

//your url
$url = 'http://localhost/test/test.php';

$file = realpath('php1.php');

// build multipart
//set appropriate content type in headers

$params  = "--ABC1234\r\n". "Content-Type: application/x-www-form-urlencoded\r\n". "--ABC1234\r\n". "Content-Type: text/php\r\n". "Content-Disposition: attachment; filename=\"php1.php\"\r\n". "\r\n". file_get_contents($file) . "\r\n". "--ABC1234--";

$first_newline      = strpos($params, "\r\n");
$multipart_boundary = substr($params, 2, $first_newline - 2);
$request_headers    = array();
$request_headers[]  = 'Content-Length: ' . strlen($params);
$request_headers[]  = 'Content-Type: multipart/form-data; boundary=' . $multipart_boundary;

// send the request now

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);

$reply = curl_exec($ch);
curl_close ($ch);

на другом конце вы сможете получить загруженный файл в $_FILES переменная.

Проверено на локальном сервере.

Надеюсь, что это поможет вам.

0

Другие решения

Других решений пока нет …