我想通过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下载的文件。错误消息表明文件已损坏。