モバイルデバイスのユーザーに必要に応じて生成されるPDFファイルの配信に取り組んでいます。私はASP.NET MVC 2を使用しており、PDFとしてReport Viewerローカルレポートのエクスポートを使用してPDFを生成します。動的PDFとAndroidのデフォルトブラウザ
これにより、PDFコンテンツの生のバイト[]が得られます。
私は、使用してそれを返す:
リターンファイル(PDF、MIMEタイプ、 "FileName.pdfを");
注:ファイルを保存するためのデフォルト名「FileName.pdf」の有無にかかわらず試してみました。
これは、デスクトップブラウザとiPhoneでうまくいきます。私はWP 7エミュレータでテストしましたが、PDFを読み込めるだけであれば動作するようです(適切なファイル名を保存するよう促します)。
Androidは不平を言っているようです。
私はDroid-XとDroidのデバイスでテストしており、ブラウザのダウンロード結果には常に「ダウンロードに失敗しました」と表示されます。 Opera Miniでは、ファイル名を含むリターンメソッドを使用しているときにファイルを保存するよう求められ、PDFがデバイスに保存された後に正常に開かれました。
ディスク上にすでに存在するPDFファイルを返すことができます:File( "〜/ filename.pdf"、 "application/pdf");動的なPDFでは問題になるようです。
以前にこの問題に対処した人はいますか?
ダイナミックケースで同じ方法で実際にMIMEタイプを設定していることを確認できますか?あなたはトラフィックをスヌープするか、そうでなければ比較するためにヘッダをダンプすることができますか? –
MIMEタイプISがapplication/pdfに設定されています。私は、起こったことが、リソースのPOSTが発生した直後に、Androidデバイス(SDKのエミュレータでも同じ)が同じリソースに対して直ちにGETすることを発見しました。 HTTP POSTは成功しましたが、GETは404になりました(私はPOSTにちょうど応答していたからです)。私はなぜそれが2回(毎回異なる方法で)要求したのか分かりません。私はHTTP GETを有効にした後、正しく動作し、2つの要求をしませんでした。私は二重の要求をまだ分かっていないが、進歩を遂げた。 –
私はまったく同じ問題を抱えています。 FirefoxとOpera Mobileは動作しますが、ネイティブのDroidXブラウザは動作しません。ところで、動的なJPEG画像は正常に動作します。私はHTTPSを使用しています。これは状況を悪化させるようです。私は静的PDFファイルをHTTP経由で読み込むことができました。 MIMEタイプが正しい。 Androidフォーラムで見たことから、Androidユーザーの共通の問題のようです。 –