Почему метод system () добавляет заголовок?

Я создавал скрипт загрузки изображений php. Скрипт отправляет запрос на публикацию и (должен) получить ответ json.

Это строка для проверки типа пантомимы.

$mimetype = system("file -bi -- ".escapeshellarg($_FILES["file"]["tmp_name"])); //line 63

и после нескольких строк я устанавливаю заголовок JSON:

header('Content-Type: application/json'); //line 124

но JS не работает. При проверке вкладки сети в Chrome:

Дисплей ошибок

0

Решение

Это потому что Система () Функция записывает все из оболочки в вывод скрипта (что-то вроде автоматического эха). Вы не можете использовать header () после того, как какой-то вывод был отправлен из скрипта, и это произошло — system () отправил вывод («image / png; charset = binary» на вкладке сети перед предупреждением).

Попробуй использовать Exec () вместо.

2

Другие решения

Он не отправляет заголовки сам по себе, он просто отправляет результат выполнения, и, как только он будет отправлен, отправлять заголовки будет слишком поздно.

Я предлагаю отправлять заголовки первым делом или, как @kbarborak предложил использовать функцию exec ().

0

По вопросам рекламы ammmcru@yandex.ru