【问题标题】:ZF2 file download not workingZF2 文件下载不工作
【发布时间】:2015-01-27 12:07:32
【问题描述】:

我正在尝试下载 ZF2 中的文件并卡在某个地方。我无法得到解决方案。该文件正确且可读。我认为标题设置有问题。请帮忙!。摘录代码如下:

  $response = new \Zend\Http\Response\Stream();
        $response->setStream(
                fopen($filePath, 'r')
        );
        $response->setStatusCode(200);
        $headers = new \Zend\Http\Headers();
        $headers->addHeaderLine('Content-Type', 'application/octet-stream');


        $headers->addHeaderLine('Content-Transfer-Encoding','binary');
        $headers->addHeaderLine('Content-Type', 'application/octet-stream');
        $headers->addHeaderLine(
                        'Content-Disposition', 'attachment; filename="' . $media->getName() . '"'
                )
                ->addHeaderLine(
                        'Content-Length', filesize($filePath)
        );

        $response->setHeaders($headers);

        return $response;

我提到了以下内容: force download using ZF2 & Zend Framework 2 - Rendering CSV data

我收到一个损坏的文件

【问题讨论】:

    标签: php zend-framework2


    【解决方案1】:

    您似乎有两个重复的标题:

    $headers->addHeaderLine('Content-Type', 'application/octet-stream');
    

    【讨论】:

    • 抱歉,这不是问题所在 :(
    • 哦!抱歉,忘记正确提及错误..下载后我收到损坏的图像..附上截图
    • 您是否为您期望的文件使用了正确的 mime 类型?我看到那是 JPEG 图像。尝试使用image/jpeg
    • 内容是动态的(图片/pdf/音频)。因此,将其设置为 `Content-Type', 'application/octet-stream' `
    • 你在什么时候读取文件?文件开头好像有两个空格:starts with 0x20 0x20。也许您应该检查正在读取文件的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-26
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多