Задать вопрос
@Ioldyz

PHP CURL как отправить несколько файлов под одним параметром name?

Добрый день
Подскажите пжта, может уже голова не вариант, но не могу сделать нормальный запрос с использованием PHP и библиотеки CURL

есть к примеру запрос
curl -u userDefault:xxx -i  --request POST -F 'Metadata={"OutputFilename": "out.pdf"}' -F "InputFiles=@1.pdf" -F "InputFiles=@2.pdf" localhost:8080

то есть параметр InputFiles для первого файла и для второго файла ( не InputFiles[0] и не InputFiles[1] )
На стороне сервера

--------------------------b25633183e8adc0c
Content-Disposition: form-data; name="Metadata"

{"OutputFilename": "out.pdf"}
--------------------------b25633183e8adc0c
Content-Disposition: form-data; name="InputFiles"; filename="1.pdf"
Content-Type: application/pdf

ContentFile1
--------------------------b25633183e8adc0c
Content-Disposition: form-data; name="InputFiles"; filename="2.pdf"
Content-Type: application/pdf

Content File 2
--------------------------b25633183e8adc0c--



Делаю в PHP :

.......
 $post = array(
            'Metadata' => '{\"OutputFilename\": \"out.pdf\"}',
            'InputFiles' => [],
        );
        $post['InputFiles'][] = curl_file_create(
                realpath($filePath1),
                mime_content_type($filePath1),
                basename($filePath1)
            );
        $post['InputFiles'][] = curl_file_create(
                realpath($filePath2),
                mime_content_type($filePath2),
                basename($filePath2)
            );

......
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post);


добавлял даже
curl_setopt($ch, CURLOPT_HTTPHEADER,
            array(
                "Content-Type" => "multipart/form-data"
            ));


на стороне серверва

--------------------------cfd4888614e3ae2a
Content-Disposition: form-data; name="Metadata"

{\"OutputFilename\": \"out.pdf\"}
--------------------------cfd4888614e3ae2a
Content-Disposition: form-data; name="InputFiles"

Array
--------------------------cfd4888614e3ae2a--



не могу понять, как это изменить, подскажите пжта

---- добавлено
параметр InputFiles для первого файла и для второго файла ( не InputFiles[0] и не InputFiles[1] ), т.е. как в примере
  • Вопрос задан
  • 614 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@galaxy
В документации пример есть:
<?php
$request = curl_init('http://www.example.com/upload.php');
curl_setopt($request, CURLOPT_POST, true);
curl_setopt($request, 
CURLOPT_SAFE_UPLOAD, true); curl_setopt(
    $request,
    CURLOPT_POSTFIELDS,
    [
        'blob[0]' => new CURLFile(realpath('first-file.jpg'), 'image/jpeg'),
        'blob[1]' => new CURLFile(realpath('second-file.txt'), 'text/plain'),
        'blob[2]' => new CURLFile(realpath('third-file.exe'), 'application/octet-stream'),
    ] );
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);

echo curl_exec($request);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы