我成功生成了一个可用于Google Earth的xml文件。 当我打开文件时看起来像这样。文件从第1行Xml generated
开始然后,我为用户生成一个链接以下载文件。文件现在从第2行开始。 File download from the link。
我不知道为什么会这样。 这是我用来将文件发送给用户的代码。
$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);
有人可以指出我为什么会这样吗?
答案 0 :(得分:2)
文件中<?php
标记之前的内容,将输出到浏览器。检查文件开头是否有空格-换行符,BOM标记,Unicode不间断空格,无。对于所有include()d或require()d文件也是如此。