Я читаю blob (документ Word 2010) из базы данных mysql и сохраняю его в переменной $ data. Когда я просто сохраняю эти данные прямо в PHP, примерно так:
file_put_contents('c:\\temp\\dump.docx', $data);
Я могу открыть dump.docx в Word (размер соответствует исходному файлу). Если я попытаюсь отправить $ data следующим образом:
ob_start();
header('Content-disposition: attachment; filename=' . $name);
header('Content-type: ' . $type);
ob_clean();
echo $data;
ob_end_flush();
exit;
Сохраненный файл на два байта длиннее. Впереди два пробела:
Чтобы проверить, не выводить ли я эти пробелы как-то, я вызвал ob_get_contents () непосредственно перед echo и сбросил содержимое в файл. Файл имеет ноль байтов.
Похоже, эхо выдает эти два байта.