При загрузке XML-файла в начало файла добавляется новая строка - PullRequest
2 голосов
/ 06 марта 2019

Я успешно создал XML-файл для использования в Google Планета Земля. Это выглядит так, когда я открываю файл. Файл начинается со строки 1 Сгенерированный XML

Затем я создаю ссылку для загрузки файла пользователем. Файлы теперь начинаются со строки 2. Файл можно скачать по ссылке .

Я не могу понять, почему это происходит. Вот код, который я использовал для отправки файла пользователю.

     $target_file =  "../files/google.xml";
      $fh = fopen($target_file, 'r');
      $file_stream = new Stream($fh);

    return $response ->withHeader('Content-Type', 'application/xml; charset=utf-8')
                  ->withHeader('Content-Type', 'application/force-download')
                ->withHeader('Content-Type', 'application/download')
                ->withHeader('Content-Description', 'File Transfer')
                ->withHeader('Content-Disposition', 'attachment; filename="' . basename($target_file) . '"')
                ->withHeader('Expires', '0')
                ->withHeader('Cache-Control', 'must-revalidate, post-check=0, pre-check=0')
                ->withHeader('Pragma', 'public')
               ->withBody($file_stream);

Может кто-нибудь, пожалуйста, указать мне, почему это происходит?

1 Ответ

2 голосов
/ 06 марта 2019

Все, что находится в вашем файле до тега <?php, выводится в браузер.Убедитесь, что в начале файла нет пробелов - разрывы строк, метки BOM, неразрывные пробелы Unicode, ничего.То же самое касается любых файлов include () d или require () d.

...