在Android上下载时,Symfony2 PDF的格式无效

时间:2016-07-12 21:07:27

标签: php android pdf symfony

我正在使用此代码提示在Symfony 2.7上下载文件。它适用于Windows / Mac / iPhone,但不适用于Android:

        if (!file_exists($path)) {
            throw $this->createNotFoundException('File not found.');
        }

        $response = new BinaryFileResponse($path);
        $response->trustXSendfileTypeHeader();
        $response->setContentDisposition(
            ResponseHeaderBag::DISPOSITION_ATTACHMENT,
            $name,
            iconv('UTF-8', 'ASCII//TRANSLIT', $name)
        );

点击链接时,下载开始,但随后出现错误: Filename.pdf格式无效。如果我链接并选择“保存链接”,则PDF正确下载,我可以打开它。

有谁知道如何在Android上修复下载? (使用第5版测试)。

谢谢

3 个答案:

答案 0 :(得分:0)

你有没有试过这样的事情:

vip

不知道您的PDF会被引用。基本上添加'内容类型' PDF的标题,看看是否有所作为。我不确定这是否有效。

编辑#2 我看到了这个链接: http://www.digiblog.de/2011/04/android-and-the-download-file-headers/

所以尝试这个标题更改:

$response->headers->set('Content-Type', 'application/pdf');
$response->setContentDisposition(
    ResponseHeaderBag::DISPOSITION_ATTACHMENT,
    'filename.pdf'
);

尝试一下,看看是否会改变结果。

答案 1 :(得分:0)

代码不是问题所在。我将文件扩展名更改为大写,现在它正在使用Android:filename.pdf - > filename。 PDF 愚蠢,我知道。

答案 2 :(得分:0)

实际上,谢谢你的回答。我搜索并发现了这个:

http://www.digiblog.de/2011/04/android-and-the-download-file-headers/

看起来旧版本的Android存在问题。也许在您的代码中,您可以检查它,并根据浏览器为该文件创建正确的CASE。