Intereting Posts
PHP, MySQL и часовые пояса Как сделать вывод TWIG переменной для последующего использования (symfony2)? Изменить часовой пояс в Lumen или Laravel 5 В регулярном выражении изменяется, когда вы добавляете знак вопроса в. + Неопределенная ошибка индекса при отправке переменной из jquery в php GUI интерфейс базы данных MySQL Проверить токен доступа к API Facebook и идентификатор пользователя через PHP SDK? PHP – нужно удалить повторяющиеся символы в строке, но хотелось бы включить исключения Doctrine manyToMany возвращает PersistentCollection вместо ArrayCollection Что означают конструкции \ H, \ V и \ N? Неверный mime-тип из PHP Должны ли закрываться соединения SQL, открытые с PDO в PHP? Есть ли у PHP функция, которая возвращает правильное расширение файла с учетом допустимого типа содержимого? Как получить данные в функции расширения контроллера? Как установить расширение ext-curl с помощью PHP 7?

Загружать несколько файлов с завихрением

Как загрузить несколько файлов в массиве с помощью CURLFile и curl_setopt ?

Использование массива данных, поскольку это вызовет ошибку (не может преобразовать массив в строку), а http_build_query по данным приведет к CURLFile объектов CURLFile .

Данные, которые я должен загрузить, выглядят следующим образом:

 [ 'mode' => 'combine', 'input' => 'upload', 'format' => $outputformat, 'files' => [ [0] => CURLFile object, [1] => CURLFile object, [x] => ... ] ] 

Solutions Collecting From Web of "Загружать несколько файлов с завихрением"

PHP 5.5+ имеет функцию для создания файлов без использования CURLFile: curl_file_create .

Вы можете загрузить несколько файлов следующим образом:

 <?php $files = [ '/var/file/something.txt', '/home/another_file.txt', ]; // Set postdata array $postData = ['somevar' => 'hello']; // Create array of files to post foreach ($files as $index => $file) { $postData['file[' . $index . ']'] = curl_file_create( realpath($file), mime_content_type($file), basename($file) ); } $request = curl_init('https://localhost/upload'); curl_setopt($request, CURLOPT_POST, true); curl_setopt($request, CURLOPT_POSTFIELDS, $postData); curl_setopt($request, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($request); if ($result === false) { error_log(curl_error($request)); } curl_close($request); 

Это будет получено на сервере как массив под file же, как если бы была размещенная форма, это $_FILES :

 Array ( [file] => Array ( [name] => Array ( [0] => 1.txt [1] => 2.txt ) [type] => Array ( [0] => text/plain [1] => text/plain ) [tmp_name] => Array ( [0] => /private/var/folders/cq/7262ntt15mqdmylblg9p1wf80000gn/T/phpp8SsKD [1] => /private/var/folders/cq/7262ntt15mqdmylblg9p1wf80000gn/T/php73ijEP ) [error] => Array ( [0] => 0 [1] => 0 ) [size] => Array ( [0] => 6 [1] => 6 ) ) ) 

Это $_POST :

 Array ( [somevar] => hello )