如何使用 Response 对象在 Symfony 2 中强制下载 .csv 文件?

2024-01-11

我正在使用 Symfony 2 制作一个“下载”控制器,其唯一目的是发送标头,以便我可以强制下载 .csv 文件,但它无法正常工作。

$response = new Response();
$response->headers->set('Content-Type', "text/csv");
$response->headers->set('Content-Disposition', 'attachment; filename="'.$fileName.'"');
$response->headers->set('Pragma', "no-cache");
$response->headers->set('Expires', "0");
$response->headers->set('Content-Transfer-Encoding', "binary");
$response->headers->set('Content-Length', filesize($fileName));
$response->prepare();
$response->sendHeaders();
$response->setContent(readfile($fileName));
$response->sendContent();

$fileName is a "info.csv"细绳。这就是我在控制器内的操作,没有返回语句。当我尝试返回时Response对象,文件的内容显示在浏览器中,不是我想要的结果。

我发现的问题是,在某些页面中我确实得到了我的info.csv file,但在其他人中我得到的只是一条消息:

No webpage was found for the web address: http://mywebpage.com/download Error 6 (net::ERR_FILE_NOT_FOUND): The file or directory could not be found.

我完全确定该文件存在,所以肯定还有其他问题。另外,routing.yml 工作正常,因为我确实从也链接到该路径的其他页面获取该文件。 Apache 错误日志没有显示任何相关内容。

以前有人在 Symfony 2 上强制下载 .csv 文件吗?如果是这样,我做错了什么?


这是一个在生产中运行良好的最小示例:

class MyController
public function myAction()

    $response = $this->render('ZaysoAreaBundle:Admin:Team/list.csv.php',$tplData);

    $response->headers->set('Content-Type', 'text/csv');
    $response->headers->set('Content-Disposition', 'attachment; filename="teams.csv"');

    return $response;

如果您愿意,您可以用新的响应和响应->setContent 替换渲染调用。

您对控制器内没有 return 语句的评论令人费解。控制器返回响应。让框架负责将内容发送到浏览器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Response 对象在 Symfony 2 中强制下载 .csv 文件? 的相关文章

  • 如何定义/传递 sonata-admin 的实体管理器

    我跟着本教程 http symfony2 ylly fr sonataadminbundle fosuserbundle have a good base project jordscream 使用 FOSUserBundle 安装 Son
  • 防止 Twig 函数扩展中的输出转义

    我创建了一个 Twig 扩展 image image png 200 嗨 我知道我可以做 image image png 200 raw 但我更喜欢使用 PHP 代码 这样所有内容 来自这个 图像 扩展 都不会被转义 我看不出这可能 我知道
  • 在powershell的列中处理带有换行符的CSV

    目前 我有一个系统 它创建一个像下面这样的分隔文件 在其中我模拟了偶尔出现在列中的额外换行符 列 1 列 2 列 3 列 4 文本1 文本2 LF 文本3 LF 文本4 CR LF 文本1 文本2 LF LF 文本3 文本4 CR LF 文
  • 为什么 pandas.to_datetime 对于非标准时间格式(例如“2014/12/31”)很慢

    我有一个这种格式的 csv 文件 timestmp p 2014 12 31 00 31 01 9200 0 7 2014 12 31 00 31 12 1700 1 9 当通过阅读时pd read csv并将时间字符串转换为日期时间使用p
  • 动态创建和下载Doc文件

    因此 我尝试动态创建 doc 文件并让用户在单击按钮时下载该文件 这些是我找到的用于下载文件的标头 header Content Description File Transfer header Content Type applicati
  • 您可以用 Google 的 Protocol Buffer 格式表示 CSV 数据吗?

    我最近发现了协议缓冲区 想知道它们是否可以应用于我的特定问题 基本上 我有一些 CSV 数据 需要将其转换为更紧凑的格式以进行存储 因为其中一些文件有几GB CSV中的每个字段都有一个标题 并且只有两种类型 字符串和小数 因为有时有很多有效
  • Symfony2动态添加事件监听器

    如何在不使用 services yml 模式的情况下动态地将事件侦听器 在我的例子中是一个学说事件 添加到内核 在深入研究了供应商目录之后 我自己找到了答案appProdProjectContainer php文件 如果您希望使用事件管理器
  • 批量插入不适用于 NULL 数据

    当我从 CSV 文件将批量数据插入到表中时 它不起作用 显示错误 第 2 行第 9 列的批量加载数据转换错误 类型不匹配或指定代码页的字符无效 csv 文件中的第 9 列值为空 我该如何处理这个问题 根据这些信息 我认为目标表的特定字段被定
  • 如何使用多个数据库设置 symfony 3 学说迁移?

    我在验证和更新模式时努力让 symfony doctrine 排除数据库视图 我第一次尝试没有教条迁移 看到这个问题 https stackoverflow com questions 46775200 symfony 3 doctrine
  • 将ADODB二进制流转换为字符串vba

    我有以下问题 我有一个存储在服务器上的 CSV 文件 但它有 3 个字符作为分隔符 我想从 URL 加载数据并使用 作为分隔符将数据填充到 Excel 页面的列中 到目前为止 我找到了使用 ADODB 记录集从网站加载文件的代码 但我无法进
  • 如何将包含多个字段的大型 csv 加载到 Spark

    新年快乐 我知道以前曾提出 回答过此类类似的问题 但是 我的问题有所不同 我有大尺寸的 csv 有 100 个字段和 100MB 我想将其加载到 Spark 1 6 进行分析 csv 的标题看起来像附件sample http www roc
  • 从 Python 下载/安装 Windows 更新

    我正在编写一个脚本来自动安装 Windows 更新 我可以将其部署在多台计算机上 这样我就不必担心手动更新它们 我想用 Python 编写这个 但找不到任何关于如何完成此操作的信息 我需要知道如何搜索更新 下载更新并从 python 脚本安
  • Azure 上的“phpcomposer.phar install”出现“无法终止进程”错误

    我正在尝试将我的 Symfony 2 应用程序部署到 Microsoft Azure 网站云 为此 我按照本指南中的步骤操作http symfony com doc current cookbook deployment azure web
  • 当有很多列时,使用 readr::read_csv() 导入数据时覆盖列类型

    我正在尝试使用 R 中的 readr read csv 读取 csv 文件 我导入的 csv 文件大约有 150 列 我只包含示例的前几列 我希望将第二列从默认类型 我执行 read csv 时为日期 覆盖为字符或其他日期格式 GIS Jo
  • 如何在 Symfony DateType 字段中设置日期范围?

    我需要在表单中的 dateType 字段的最小和最大日期上设置范围 我的代码在这里 public function buildForm FormBuilderInterface builder array options builder g
  • 仅将 pandas df 的前 N ​​行写入 csv

    如何仅将前 N 行或从 P 到 Q 行从 pandas 数据帧写入 csv 而不首先对 df 进行子集化 由于内存问题 我无法对要导出的数据进行子集化 我正在考虑一个逐行写入 csv 的函数 谢谢 Use head https pandas
  • 使用 dtypes read_csv 但列中没有值[重复]

    这个问题在这里已经有答案了 我使用以下代码来读取 csv 通过指定每个列的类型 clean pdf type pd read csv table updated csv usecols col names dtype col types 但
  • 使用从两列计算出的键对 CSV 进行排序,获取前 n 个最大值

    这里是 Python 业余爱好者 假设这里我有一个示例 csv 文件的片段 Country Year GDP Population Country1 2002 44545 24352 Country2 2004 14325 75677 Co
  • PowerShell FTP 下载文件和子文件夹

    我喜欢写一个PowerShell脚本来下载全部文件 and 子文件夹从我的 FTP 服务器 我找到了一个脚本来下载一个特定文件夹中的所有文件 但我也喜欢下载子文件夹及其文件 FTP Server Information SET VARIAB
  • 如何将“.csv”数据文件导入Redis数据库

    如何将 csv 数据文件导入 Redis 数据库 csv 文件中包含 id 时间 纬度 经度 列 您能否向我建议导入 CSV 文件并能够执行空间查询的最佳方法 这是一个非常广泛的问题 因为我们不知道您想要什么数据结构 您期望什么查询等等 为

随机推荐

  • 在 C/C++ 中以 O(1) 时间初始化动态数组

    有没有办法在 O 1 时间内初始化整个动态数组 有没有类似的东西bool a 10 false 在静态数组的情况下 对于动态数组 要设置的每个元素都必须由CPU单独考虑 因此时间复杂度为O N 或者是吗 但这并不是 big oh 真正的工作
  • 尝试通过玩家输入使用 tkinter 使对象在网格中移动

    所以我正在 tkinter 而不是 pygame 中开发一个类似地下城爬行者的游戏 我发现这非常困难 因为网格无法在代码中工作 并且我找不到在画布上创建可通过按键输入移动的形状的方法 我已经尝试了多种修复方法 但无法找到一种方法将所有这些都
  • 与“docker run -d”等效的远程 api 命令是什么?

    我正在尝试通过远程 api 调用 docker 命令 Docker 远程 api 似乎没有 分离模式 选项 http docs docker io en latest commandline command run http docs do
  • LinQ 查询多个表并提取数据

    我正在对 4 个表进行内连接查询 我必须提取数据并转换为字符串并将其放入数组中 var query from a in context as join b in context bs on a prikey equals b forkey
  • 如何连接数组列表中的字符串值

    我需要使用 concat 一次打印所有数组列表值 这是我的代码 ArrayList
  • git merge 不创建合并提交,没有 MERGE_HEAD [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 在 Linux 上使用 Git 1 8 1 2 我一直在基于以下两个不同的分支上工作master并行 称为 A 和 B 并且还创建
  • 是什么导致 pyspark 中的“unicode”对象没有属性“toordinal”?

    我收到此错误 但我不知道是什么原因造成的 我的 python 代码在 pyspark 中运行 堆栈跟踪很长 我只显示其中的一些 所有堆栈跟踪都没有显示我的代码 所以我不知道在哪里寻找 导致此错误的可能原因是什么 usr hdp 2 4 2
  • 什么是 GWT 字节缓存文件?

    作为背景 今天我的 GWT 托管模式运行速度神秘地减慢到几乎无法工作的程度 每当我暂停应用程序时 相关线程 主线程 代码服务器等 都会等待某些文件 I O 本机方法 挠头一阵子后 我尝试清理一下我的硬盘 然后我刚刚在我的用户中发现Temp文
  • 在 Mac OS 上安装 Rails 失败并出现多个错误

    我尝试在 Mac OS v10 10 4 系统上安装 Rails 但运行时失败brew install rbenv ruby build 错误是 Error Permission denied usr local etc openssl W
  • PRNG 需要线程安全吗?

    只要并发调用不会导致 seg v 或返回相同的值 就有什么理由可以防止竞争条件和数据损坏PRNGs http en wikipedia org wiki Pseudorandom number generator当这些错误的主要影响是不可预
  • 如何在不删除约束的情况下从表中删除

    我有一个问题 我需要在不删除或暂停约束的情况下删除信息 问题是否允许放弃约束很简单 但是我可以将值从 NULL 更改为 NOT NULL DELETE FROM SUPPLIER WHERE COUNTRY USA 然而 另一个表 PROD
  • 方向改变时片段 Backstack 不会恢复

    我有一个FragmentActivity 当用户浏览应用程序时 我将当前片段替换为用户选择的片段 并将事务添加到后台堆栈 一切正常 用户可以通过按后退按钮返回到之前的片段 当设备方向改变时就会出现问题 假设用户看到的第一个片段是 A 然后他
  • 使用最小起订量模拟静态类

    我正在 NUnit 的帮助下编写单元测试用例 并且有一些静态类需要模拟来运行测试用例 所以我们可以在以下帮助下模拟静态类吗MOQ模拟框架 如果有人有想法 请提出建议 有两种方法可以实现这一点 正如 PSGuy 所说 您可以创建一个代码可以依
  • Google Delegates 讨论日历框架/EventKit

    我一直假设 Google 代表可以通过 iCal 和 calendar app 查看 但我们开发人员无法通过日历框架或 EventKit 看到 这有改变吗 我也有这个问题 日历出现两次 取消选择代表 过了一会儿 一切都消失了 显然这是谷歌方
  • 如何检测服务器是否正在使用 SPDY

    有什么方法可以检测远程网站是否支持 SPDY 以及它是什么版本 我可以从命令行使用一些东西 比如 bash 脚本 尝试使用curl发送自定义用户代理标头 但无法获得任何对我有帮助的响应标头 这个想法是能够为任何域获取 SPDY true f
  • c# text/winForm 覆盖视频游戏,如 xfire、PIX、steam、fraps 等

    我知道有很多关于这个主题的帖子 但是几个月来我一直在寻找解决方案 我在谷歌上查了大约 300 个关于这个的帖子 我发现的唯一好的东西是一个 C 程序 它在 League 的窗口上绘制了一个彩色矩形 我对directx不是很熟悉 我的程序是用
  • 在 Python 中训练后,神经网络没有给出预期的输出

    我的神经网络在 Python 训练后没有给出预期的输出 代码有错误吗 有什么方法可以减少均方误差 MSE 吗 我尝试重复训练 运行程序 网络 但它没有学习 而是给出相同的 MSE 和输出 这是我使用的数据 https drive googl
  • 阻止内核处理绑定到原始套接字的 TCP 段

    根据http linux die net man 7 raw http linux die net man 7 raw raw socket socket AF INET SOCK RAW int protocol 是创建原始套接字的方法
  • MySQL 触发器将列设置为 max + 1 不起作用

    我在编写一个触发器来将一组用户 ID 的排名列设置为最大排名值加 1 时遇到困难 也许代码比我的描述更有帮助 CREATE TABLE saved listing saved listing id int 10 NOT NULL auto
  • 如何使用 Response 对象在 Symfony 2 中强制下载 .csv 文件?

    我正在使用 Symfony 2 制作一个 下载 控制器 其唯一目的是发送标头 以便我可以强制下载 csv 文件 但它无法正常工作 response new Response response gt headers gt set Conten