2010-12-10 4 views
1

モバイルデバイスのユーザーに必要に応じて生成される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では問題になるようです。

以前にこの問題に対処した人はいますか?

+0

ダイナミックケースで同じ方法で実際にMIMEタイプを設定していることを確認できますか?あなたはトラフィックをスヌープするか、そうでなければ比較するためにヘッダをダンプすることができますか? –

+0

MIMEタイプISがapplication/pdfに設定されています。私は、起こったことが、リソースのPOSTが発生した直後に、Androidデバイス(SDKのエミュレータでも同じ)が同じリソースに対して直ちにGETすることを発見しました。 HTTP POSTは成功しましたが、GETは404になりました(私はPOSTにちょうど応答していたからです)。私はなぜそれが2回(毎回異なる方法で)要求したのか分かりません。私はHTTP GETを有効にした後、正しく動作し、2つの要求をしませんでした。私は二重の要求をまだ分かっていないが、進歩を遂げた。 –

+0

私はまったく同じ問題を抱えています。 FirefoxとOpera Mobileは動作しますが、ネイティブのDroidXブラウザは動作しません。ところで、動的なJPEG画像は正常に動作します。私はHTTPSを使用しています。これは状況を悪化させるようです。私は静的PDFファイルをHTTP経由で読み込むことができました。 MIMEタイプが正しい。 Androidフォーラムで見たことから、Androidユーザーの共通の問題のようです。 –

答えて

0

私はDroid-XとDroidデバイスでテストしており、ブラウザのダウンロード結果には常に「ダウンロードに失敗しました」と表示されています。

AFAIKは、HTTP要求が失敗したか、またはMIMEタイプがACTION_VIEWアクティビティが登録されているMIMEタイプではないことを意味します。 DROIDはPDFビューアには付属していなかったことを覚えておいてください.DROID Xがしたかどうかは忘れてしまいます。

私は、問題が無効なMIMEタイプであると感じる点でChrisに同意します。 curlまたはブラウザプラグインを使用してHTTP応答ヘッダーを検査し、確かにapplication/pdfがMIMEタイプとして返​​されていることを確認してください。

それでも問題が解決しない場合は、テストするURLを私たちに提供してください。そうすれば助けになります。

+0

URLはパブリックインターネットからアクセスできないが、上記のコメントで述べたように、MIMEタイプは正しいが、POSTを実行していて、すぐにGETが続き、GET(404 、表示するコンテンツはありません)。 –

0

私はこの質問を年前から見ることができますが、PDFを表示したいだけなら、あなたのpdf URLをGoogleドキュメントビューアに埋め込み、そのURLを参照すればアンドロイドブラウザで開くことができます。

ただし、これはURLに一般公開されている場合にのみ有効です。