我正在使用此代码提示在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版测试)。
谢谢
答案 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。