Отправка файла через cURL

149
24 марта 2018, 17:09

Добрый день. Подскажите, может кто сталкивался: Есть URL на принимающей стороне. Через HTML форму выбираю массив файлов

<html>
  <body>
    <form form enctype="multipart/form-data" action="test_load.php" method="POST">
      <input type="file" name="upfile[]" multiple>
      <input type="submit" value="Upload File" name="submitfile">
    </form>
  </body>
</html>

Далее эти файлы пытаюсь загрузить по URL. Но вместо файла пишется строка, типа:

@%TEMP_DIR%;filename=%FILE_NAME%;type=image/png

Вот код PHP. Версия на сервере 5.4.4 (не спрашивайте почему, больная тема):

<?php
      if (isset($_POST['submitfile'])) {
        $dir = $_SERVER['SERVER_NAME'];
        $target = 'http://example.com?var1=%val1%&var2='.$dir;
        $fCount = count($_FILES['upfile']['tmp_name']);

        $ch = curl_init();
        for($i = 0; $i < $fCount; $i ++){
            if ($_FILES['upfile']['error'][$i] > 0) {
              die('Ошибка загрузки файла: '.$_FILES['upfile']['error'][$i]);
            }
            $filename = $_FILES['upfile']['name'][$i];
            $tmp_name = $_FILES['upfile']['tmp_name'][$i];
            $mime_type = $_FILES['upfile']['type'][$i];
            if (!function_exists('curl_file_create')) {
                function curl_file_create($tmp_name, $mimetype = '', $postname = '') {
                    return "@$tmp_name;filename="
                        . ($postname ?: basename($filename))
                        . ($mimetype ? ";type=$mimetype" : '');
                }
            }
            $cFile    = curl_file_create($tmp_name,$mime_type,$filename);
            curl_setopt($ch, CURLOPT_URL, $target);
            curl_setopt($ch, CURLOPT_HEADER, 0);
            curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/octet-stream'));
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($curl, CURLOPT_VERBOSE, 1);
            curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
            curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36');
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $cFile);
            $result = curl_exec($ch);
            print_r($result);

        }
        curl_close($ch);
      }
    ?>

Буду очень благодарен, если кто то объяснит, что к чему. С PHP близко не знаком, но выбора нет...

READ ALSO
Не работает контактная форма на HTML + PHP

Не работает контактная форма на HTML + PHP

Ребят помогите разобраться почему не работает контактная форма при отправке сообщенийКод самой формы на HTML файла index

156
Как сделать выборку из базы данных?

Как сделать выборку из базы данных?

Использую Bootstrap DataTable, у нее есть возможность подгружать данные из базы динамическиЗапрос к базе формируется классом ssp

179
Как реализовать прерывание цикла

Как реализовать прерывание цикла

Как реализовать условие выхода(ввод отрицательного значения при вводе оценки) из цикла, но так чтобы это введеное отрицательное значение...

200
QModBusTcp + HoldingRegisters

QModBusTcp + HoldingRegisters

Добрый день! Прошу помощи, так как я не могу понять почему такПроблема заключается в количестве считаных HoldingRegisters

217