php - 通过zend rest下载的文件已损坏
问题描述
我想通过 zend 框架下载一个 zip 文件。为此,我构建了以下代码片段:
function fetchAll($params = []) {
$file = __DIR__ . '/../../../../htdocs/_downloads/test.zip';
$response = new Stream();
$response->setStream(fopen($file, 'rb'));
$response->setStatusCode(200);
$response->setStreamName(basename($file));
$headers = new Headers();
$headers->addHeaders([
'Content-Disposition' => 'attachment; filename="' . basename($file) . '"',
'Content-Type' => 'application/octet-stream',
'Content-Length' => filesize($file)
]);
$response->setHeaders($headers);
return $response;
}
上面的代码是休息资源的一部分。
现在我下载了两次文件:一次使用 WinSCP,一次使用我的 REST API。我得到的文件在我的磁盘上具有完全相同的大小(1,390,687 字节)。问题是我可以打开 WinSCP 下载的 zip 文件,但无法打开通过 REST 下载的文件。错误消息说文件已损坏。
解决方案
推荐阅读
- matplotlib - 是否可以访问 NASM 中的过程链接表?
- python - TensorFlow 2.0 与 TensorFlow 1.0 不兼容的奇怪错误
- kubernetes - sqlproxy:将秘密注入 sqlproxy.cnf
- categories - 如何从 Discord.js 中的类别名称获取类别 ID
- vba - 搜索表单不适用于前端数据库
- django - 使用 nginx 和 Gunicorn 运行时,Django 标准输出输出到哪里?
- javascript - react redux 应用程序中未定义 state 或 props 中的课程
- oauth-2.0 - 如何检测OIDC授权请求是否需要在浏览器中打开
- regex - 如何在正则表达式中用不同的文本替换不同的匹配组
- python-3.x - AttributeError:'str'对象没有属性'_id'与openpyxl