通过zend rest下载的文件已损坏

时间:2018-06-18 07:50:12

标签: php zend-framework

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

0 个答案:

没有答案