PHPExcel 在 AWS 上运行代码时写入垃圾字符。

2024-01-07

我面临 PHPExcel excel 下载代码的问题。下载代码在一台服务器(netcore 服务器)上运行,但同一组代码在 AWS 服务器上不起作用。任何人都可以帮助我找出确切的问题是什么?以下是phpexcel下载代码:

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
date_default_timezone_set('Europe/London');

if (PHP_SAPI == 'cli')
    die('This example should only be run from a Web Browser');

/** Include PHPExcel */
require_once '../Classes/PHPExcel.php';


// Create new PHPExcel object
$objPHPExcel = new PHPExcel();

// Set document properties
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
                             ->setLastModifiedBy("Maarten Balliauw")
                             ->setTitle("Office 2007 XLSX Test Document")
                             ->setSubject("Office 2007 XLSX Test Document")
                             ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
                             ->setKeywords("office 2007 openxml php")
                             ->setCategory("Test result file");


// Add some data
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', 'Hello')
            ->setCellValue('B2', 'world!')
            ->setCellValue('C1', 'Hello')
            ->setCellValue('D2', 'world!');

// Miscellaneous glyphs, UTF-8
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A4', 'Miscellaneous glyphs')
            ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');

// Rename worksheet
$objPHPExcel->getActiveSheet()->setTitle('Simple');


// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);


// Redirect output to a client’s web browser (Excel5)
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="01simple.xls"');
header('Cache-Control: max-age=0');
// If you're serving to IE 9, then the following may be needed
header('Cache-Control: max-age=1');

// If you're serving to IE over SSL, then the following may be needed
header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
header ('Pragma: public'); // HTTP/1.0

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');

Excel 文件已下载,但包含垃圾/不支持的字符

PKU~AG�D�X�[Content_Types].xml��MN�0��"�%nY ��vAa �(0��ؖg�w{&i�@�nbE�{��y��d۸l m�����X�(���)���F��;@1_�����c)j�x/%��E��y� �QĿi!��K�

我在处理 xlsx 文件时遇到了这个问题,发现这是一个缓冲区问题。为了解决这个问题,我使用了 php 输出控制函数 ob_end_clean();就在保存之前。所以在你的情况下它看起来像:

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
ob_end_clean();
$objWriter->save('php://output');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHPExcel 在 AWS 上运行代码时写入垃圾字符。 的相关文章

随机推荐

  • 如何防止IE10中滚动条覆盖内容?

    在 IE10 中 滚动条并不总是存在 当它出现时 它会作为覆盖层出现 这是一个很酷的功能 但我想为我的特定网站关闭它 因为它是一个全屏应用程序 而且我的徽标和菜单消失在其后面 IE10 CHROME 有人知道在 IE10 上始终将滚动条固定
  • 如何在我的共享 Hostgator 上创建 git 存储库?

    如何在我的共享 Hostgator 上创建 git 存储库 顺便获得了 SSH 访问权限 假设已经安装了 Git git init bare path to repo 如果未安装 Git 您将无法直接推送到托管存储库 但您可以通过执行以下操
  • 如何格式化/着色 NSTextView 字符串的技术

    我正在寻找一种可靠的技术来在 NSTextView 中进行简单的字符串格式化 粗体 斜体 文本解析几乎是用正则表达式完成的 但现在我需要应用字体特征并更改大小 关于如何将文本设为粗体的一些代码片段 textView textStorage
  • R:尽管“append = TRUE”,但当表存在时,为什么 dbWriteTable 会失败

    我正在尝试使用以下命令将新数据附加到已存在的 MySQL 表中dbWriteTable方法 我过去使用它没有问题 但现在失败了 因为表已经存在 这是尽管使用overwrite FALSE append TRUE 代码 full sum ta
  • 日食 | Packge 变成一个目录,破坏了我的整个项目

    所以我遇到的问题非常奇怪 当我设置了一个预先存在的项目 并将其从计算机 A 移动到计算机 B 时 我创建一个新项目并以正常方式导入它 它非常非常基于包 大约有 30 40 个包 将两个包制作成目录而不是包 例如 它不是 org projec
  • 为什么构造函数不能被显式调用,而析构函数却可以?

    在下面的 C 代码中 我可以显式调用析构函数 但不能显式调用构造函数 这是为什么 不会是明确的 ctor 调用更多富有表现力的 and unified与 dtor 案有关吗 class X int main X x X operator n
  • Key存在时出现KeyError

    使用 python 和 twitter api 获取 tweet 对象 我有一个包含推文的文件 tweetfile 我的计算机上的 txt 文件 我试图循环遍历对象以获取文本 我使用 tweetObj keys 检查了 twitter 对象
  • 使用nodemailer发送电子邮件

    我正在尝试使用 nodemailer 从我的应用程序发送电子邮件 我的设置如下 var nodemailer require nodemailer var smtpTransport require nodemailer smtp tran
  • 无法通过 ADB 连接到我的 Android 设备

    抱歉问了这个菜鸟问题 我在使用网络解决这个问题时遇到了麻烦 我试图通过 adb 将我的设备连接到我的电脑来调试我的应用程序 我的设备已植根 Adb 调试已启用 我下载了一个 adb 运行应用程序并启动了 ADB 现在我正在尝试 adb co
  • sched_getcpu() 相当于 OS X 吗?

    在 OS X 上 有没有办法找出线程正在哪个 CPU 上运行 Linux 的等效函数是调度获取CPU http man7 org linux man pages man3 sched getcpu 3 html 获取当前处理器编号 http
  • 缓冲输入如何工作

    下一个程序中的输入 使用 DOS BufferedInput 函数 0Ah 工作正常 但是当我要求显示输出时 DOS 根本不显示任何内容 这怎么可能 ORG 256 mov dx msg1 mov ah 09h DOS WriteStrin
  • zsh:权限被拒绝:gam

    我在安装了 Oh My ZSH 的 macOS 10 12 上使用 ZSH 我最近安装了GAM https github com jay0lee GAM在我的计算机上使用提供的安装脚本bash lt curl s S L https git
  • glVertexAttribPointer 引发不可能的 GL_INVALID_OPERATION?

    我已将错误范围缩小到此 OpenGL 调用 glVertexAttribPointer var vertex 4 GL FLOAT GL FALSE 0 0 前面没有错误 并且有一个GL INVALID OPERATION之后出现错误 我的
  • CSS如何正确使用em代替像素?

    我想尝试将我的设计从像素转换为 em 我已经阅读了很多教程 我将把它留在那里 以此为基础开始 body font size 62 5 line height 1 4 现在这就是我迷路的地方 我应该定义我的font size像这样 div w
  • 使用 iframe 时更改地址栏

    有没有一种方法可以使用 iframe 但在单击 iframe 内的内容时仍然可以将地址栏更改为页面的实际内容 我想在页面顶部有一个带有音乐播放器的水平栏 允许在浏览网站时播放音乐 但我也希望人们能够轻松地为这些页面添加书签 我已经搜索过 但
  • Visual Studio 2013远程调试,自动部署?

    当我尝试使用 Windows 应用商店应用程序 Metro 应用程序 进行远程调试时 非常简单 在 开始 下拉列表中 我可以选择一台远程计算机 然后VS构建项目并自动将可执行文件部署到远程计算机并运行它 感觉就像是本地调试一样 现在我想尝试
  • 为什么没有 lubridate:::update 函数?

    正如标题所说 为什么没有这个功能呢 或者以不同的方式 函数的类型是什么 当我打字时 update我从那里得到一些东西stats包 但有一个 lubridate 函数 如上所述第 7 页 似乎还有一个lubridate update Date
  • 拯救 ActionController::UnknownFormat 免于引发异常

    我正在努力做到这一点ActionController UnknownFormat不会在生产中引发异常报告 我正在使用 Rails 4 并认为这样的东西可以解决问题 但它似乎没有什么区别 应用程序 rb config action dispa
  • Codeigniter 无法使用 join 方法从数据库表中删除行

    我想从 table1 中删除 user id 5 的那些行 但我应该检查这些帖子是否 table2 中的 title title1 我使用 Codeigniter 在尝试删除时收到此错误 除非包含 where 或 like 子句 否则不允许
  • PHPExcel 在 AWS 上运行代码时写入垃圾字符。

    我面临 PHPExcel excel 下载代码的问题 下载代码在一台服务器 netcore 服务器 上运行 但同一组代码在 AWS 服务器上不起作用 任何人都可以帮助我找出确切的问题是什么 以下是phpexcel下载代码 error rep