当前位置: 首页 > 知识库问答 >
问题:

强制从服务器下载的CSV文件显示HTML头脚本,而不是PHP。

龙玄天
2023-03-14

我的经理交给我一个PHP代码点火器项目,我在PHP方面没有可靠的经验。我正在尝试下载一个新创建的。来自服务器的csv文件。但是当我下载它时,它没有该文件的内容,而是显示我的文件的标题条带。html页面,我在那里做整个编码。

我正在尝试使用强制下载技术,互联网上到处都提到过。

$filename = $_SERVER['DOCUMENT_ROOT'] . '/apps/views/style/Default/files/'.'Attendance'.'_'.strtotime("now").'.csv';
$file = $filename;
if (is_file($file) == true) {
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header("Pragma: public", true);
header("Content-Transfer-Encoding: binary");
header('Content-Length: ' . filesize($file));
readfile($file);
      }

共有1个答案

陶福
2023-03-14

这是因为您在页面中有代码,页面中已经显示了html内容或缓冲区中要显示的内容,您必须在空白页面中实现强制下载代码,或将代码保留在页面顶部,因此它只允许您下载文件内容。

header('Content-type: text/csv');
header('Content-Disposition: attachment; filename="'.basename($file).'"');

readfile($file);
 类似资料:
  • 我正在尝试使用改造从服务器下载文件。使用HttpLoggingInterceptor我尝试记录正在发生的事情。我可以找到文件名。但是响应正文是空的。 我是使用改造的新手。有人能指出我犯错的正确方向吗? 改进客户端界面: } Java呼叫: 日志中的响应:

  • 文件:/springboot1_firstwebapp/pom.xml

  • 问题内容: 我正在尝试从node.js服务器流式传输文件。服务器部分非常简单: 在我的角度控制器中,我正在尝试做这样的事情 在我看来,单击按钮时会调用此函数: 我查看了有关从Angular服务器中下载文件的其他答案,但没有找到适合我的方法。有一种常见的方法吗?看起来应该很简单。 问题答案: 服务返回一个具有两个回调方法的,如下所示。

  • 问题内容: 我有一个URL,用于保存我的工作中的一些项目,它们大部分是MDB文件,但也有一些JPG和PDF。 我需要做的是列出该目录中的每个文件(已完成)并为用户提供下载它的选项。 使用PHP如何实现? 问题答案: 要读取目录内容,可以使用readdir()并使用脚本(在我的示例中)来下载文件 在其中,您可以强制浏览器发送下载数据,并使用basename()来确保客户端不会传递其他文件名,例如

  • 问题内容: 操作系统和服务器信息: CentOS 6.4(最终版) 阿帕奇2.2.15 PHP 5.5.1 我以前安装了php 5.3.x,但决定升级。我首先卸载了php 5.3.x,然后安装了php 5.5.1,但是在安装完成后apache并没有解析php文件,只是下载了它们。我在这里检查了stackoverflow中的类似问题,但到目前为止,它们都没有帮助我。 作为记录,我在httpd.con

  • OS和服务器信息: CentOS 6.4(最终版) 我以前使用过PHP5.3。x已安装,但决定升级。我首先卸载了PHP5.3。然后安装PHP5.5。1但安装完成后,apache没有解析php文件,只是下载了这些文件。我在stackoverflow中检查过类似的问题,但到目前为止没有一个对我有帮助。 为了记录在案,我有以下行在我的httpd.conf和php.conf,应该使php工作,但没有: 我