php fpassthru имеет дополнительный символ в начале файла

#php

#php

Вопрос:

Я хотел бы иметь возможность загружать файл с помощью php-скрипта, я использую демонстрационный код со страниц руководства, однако мой загруженный jpeg поврежден. Я провел шестнадцатеричное сравнение и обнаружил, что загруженный файл содержит один дополнительный бит 0 в начале файла. Как я могу это исправить?

Комментарии:

1. fpassthru этого не добавляет. Он возникает в другом месте вашего кода.

2. Скорее всего, у вас появляется уведомление PHP / warning или какой-то вывод, который прерывает работу файла. Попробуйте установить значение error_reporting(0); в начале вашего кода и посмотрите, остался ли в вашем скрипте какой-либо выходной код. 🙂

3. Также: следите за любыми пробелами или другими символами за пределами ваших <?php ?> тегов. Подумайте о том, чтобы полностью исключить тег final ?> , чтобы после него не могло быть никаких нежелательных символов (это разрешено PHP и является частью многих стандартов кодирования PHP).

Ответ №1:

Я подозреваю, что PHP выдает некоторый вывод перед передачей файла JPEG. Это может быть из-за пробела перед открытием

Единственное, на что следует обратить внимание, — это спецификация в файлах UTF8. СПЕЦИФИКАЦИЯ не нужна в UTF8 и фактически может привести к проблемам, подобным той, с которой вы столкнулись, но некоторые редакторы все равно добавляют ее в файлы UTF8. Как его удалить, зависит от вашего редактора.