2016-07-12 4 views
0

私はこのコードを使用してSymfony 2.7でのファイルダウンロードを促しています。これは、Windows/Mac用/ iPhoneに取り組んではなく、Android上でだ:Symfony2 PDFは、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 siが正しくダウンロードされ、私はそれを開くことができます。

誰もがAndroidでダウンロードを修正する方法を知っていますか? (バージョン5を使用してテスト済み)。

は、あなたがこのような何かしようとしたことがあり、あなたに

+0

Symfonyでのファイル処理にはどのようなバンドルを使用していますか?また、あなたはバージョン5について言及しています、それはアンドロイドバージョンですか?残りのコントローラコードはどこにあるのですか?**あなたが投稿したコードに問題があると確信していますか? –

+0

バンドルなし。 BinaryFileResponseはSymfonyのコアの一部です。はい、Androidバージョン5です。**私は絶対に**問題が私が投稿したコードにあると確信しています。私はコントローラの残りの部分を投稿することができますが、それは関係ありません。 – sergio

答えて

0

コードは問題ではありません。ファイルの拡張子を大文字のに変更しましたが、現在はAndroid上で動作しています:filename.pdf - > filename。 PDF愚か、私は知っています。

0

ありがとう:

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

をあなたのPDFが呼ばれることになるのか分かりません。基本的にPDFの 'Content-Type'ヘッダーを追加して、違いがあるかどうかを確認します。これがうまくいくかどうかはわかりません。

編集#2 私は、このリンクを見ました:だからこのヘッダの変更を試してみてください http://www.digiblog.de/2011/04/android-and-the-download-file-headers/

を:

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

それを試してみて、その結果を変更するかどうかを確認します。

+0

私はそれを試して、それは動作していない:同じ*無効な形式の*メッセージです。 – sergio

+0

私の投稿に2回目の編集を加えました - それを試してみてください。 –

+0

まだ動作していません。しかし、その記事を読んで私はそれを解決しました。それは問題ではないコードをリンクしているようです。 – sergio

0

実際、あなたの答えに感謝します。私が検索し、これを見つけた:アンドロイドの古いバージョンに問題があるよう

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

が見えます。おそらくあなたのコードでそれを確認し、ブラウザに基づいてファイルの適切なCASEを作成することができます。

関連する問題