XAMPP, PHP: echo добавляет два пробела для чтения BLOB-объектов из базы данных - PullRequest
1 голос
/ 03 июля 2019

Я читаю 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;

Сохраненный файл на два байта длиннее. Впереди два пробела:

Downloaded word doc viewed in hex editor with two extra spaces in front

Чтобы проверить, не выводить ли я эти пробелы как-то, я вызвал ob_get_contents () непосредственно перед echo и сбросил содержимое в файл. Файл имеет ноль байтов. Похоже, эхо выдает эти два байта.

1 Ответ

0 голосов
/ 03 июля 2019

Вот пост, который мне помог: https://drupal.stackexchange.com/questions/163628/extra-space-at-beginning-of-downloaded-image/163644

ob_start уже назывался ealier. Мне нужно было вызвать только ob_clean () перед отправкой контента.

...