人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

docomo L-06C(Optimus Pad)とPHPで質問です。

index.php上にダウンロードページを表示させ、ユーザーがクリックしたらAndroidアプリをダウンロードできる仕組みを構築したいと考えています。
しかしながら、以下のようなコードで他のAndroidではアプリがダウンロードできるのに、L-06Cからはダウンロードしたファイルが壊れていて、インストールできない症状が発生して困っています。

//ダウンロード部分
header('Content-Type: application/vnd.android.package-archive');
header('Content-Disposition: attachment; filename="hogehoge.apk"');
header('Content-Transfer-Encoding', 'binary');
header('Content-Length: '.filesize('temp/hogehoge.apk'));
readfile("temp/hogehoge.apk");

ダウンロードしたファイルサイズはオリジナルと同等っぽいのですが、開けると「解析エラー:パッケージの解析中に問題が発生しました。」エラーが発生します。
どうもバイナリエディタで開くと、頭に「EF BB BF」という不正なバイトが付けられたのが原因のようなのですが、なぜ付けられたのかがわかりません。

よろしくお願いします。

●質問者: くじぇ
●カテゴリ:インターネット ウェブ制作
✍キーワード:Android application BB BF DoCoMo
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● tasklight
●60ポイント

下記の行を省いてみて下さい。

header('Content-Transfer-Encoding', 'binary');
◎質問者からの返答

tasklightさんありがとうございます。

早速試してみます!

・・・といいたいのですが、都合により手元からL-06Cがなくなってしまったので

結果が出せなくなってしまいましたorz

**

余談ですが、EF BB BF ってUTF-8のヘッダなんですね。

http://ja.wikipedia.org/wiki/UTF-8

あと私の中で混乱している点として

readfile("temp/hogehoge.apk"); と指定しているにもかかわらず

temp/hogehoge.apkに置いたままだと、ファイルサイズがありえないほど小さくなります。

一方、hogehoge.apkを先のPHPコードが記載されているファイルと同じフォルダにおくと

EF BB BFという不正なバイトこそつけられますが、同サイズでダウンロードできるようになると

いうのも釈然としない点です。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ