Привет у меня проблемы с отправкой только байтовых данных в запросе
Я только хочу отправить [байты из потока данных] но я изо всех сил стараюсь убрать это из моей просьбы.
Кто-нибудь может мне помочь разобраться с этим через 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);
Вы можете использовать ниже решение
//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
переменная.
Проверено на локальном сервере.
Надеюсь, что это поможет вам.
Других решений пока нет …