Nano Hash - криптовалюты, майнинг, программирование

Экспорт запроса HTTP POST с файлом от Postman не работает

У меня есть HTTP-запрос Postman с использованием POST, поля данных формы файла, сохраненного под ключом plsm_xls_file[]. Файл находится в локальной файловой системе.

Этот запрос отлично выполняется из POSTMAN, но когда я пытаюсь экспортировать его в PHP-Curl из фрагментов кода, я получаю что-то вроде этого:


$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://mydomain.nl/po_upload3.php?xlsimport=2',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array('plsm_xls_file[]'=> new CURLFILE('/C:/Users/myuser/Documents/vita_debug/201216_FG_PC_68715.xlsx'),'template_id' => '170'),
  CURLOPT_HTTPHEADER => array(
    'cookie: PHPSESSID=509e15pepo3ok80nd74jhdis33;'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Это не работает. Похоже, что файл неправильно прикреплен к HTTP-запросу.

РЕДАКТИРОВАТЬ: я наконец понял, что проблема в том, что POSTMAN имеет доступ к моей файловой системе, но удаленный сервер, на котором я пытался запустить экспортированный фрагмент, не имеет... Очень глупая ошибка с моей стороны.

30.12.2020

  • в чем ошибка? 30.12.2020

Ответы:


1

У меня была эта проблема некоторое время назад, и хотя истинного разрешения никогда не было (даже в системе отслеживания ошибок PHP), я смог исправить ее, не включая файл в команду setopt_array.

PHP 7.2 CURLFile выдает предупреждение о неверном имени файла

Короче говоря, попробуйте убрать вариант CURLOPT_POSTFIELDS из вызова curl_setopt_array и добавить следующее:

curl_setopt($curl, CURLOPT_POSTFIELDS, array('plsm_xls_file[]'=> new CURLFILE('/C:/Users/myuser/Documents/vita_debug/201216_FG_PC_68715.xlsx'),'template_id' => '170'));
30.12.2020
  • До сих пор не работает. Может быть, это моя версия PHP? Я использую 5.6. Я попытаюсь убрать остальные параметры из массива. Спасибо за помощь 30.12.2020
  • Теоретически это должно работать в 5.6, но 5.6 EOL был примерно год назад, поэтому мне сложно устранить неполадки с моей стороны, поскольку у меня нет доступных экземпляров. Попробуйте добавить это после curl_exec, чтобы мы могли получить информацию об ответе: print_r(curl_getinfo()); exit(0); 30.12.2020
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..