アプリ版:「スタンプのみでお礼する」機能のリリースについて

ダウンロードしたバイナリファイル(docx, doc,pdfなど)(ローカル)を読み込むプログラムを以下のようにしましたが、文字化けしました。どうすればよいでしょうか

1)htmファイル ----- 参照ダイアログでファイルを選択する
2) phpファイルは以下です。
<p><?php
if (is_uploaded_file($_FILES["upfile"]["tmp_name"])) {
if (move_uploaded_file($_FILES["upfile"]["tmp_name"], "files/" . $_FILES["upfile"]["name"])) {
chmod("files/" . $_FILES["upfile"]["name"], 0644);
echo $_FILES["upfile"]["name"] . "をアップロードしました。";
} else {
echo "ファイルをアップロードできません。";
}
} else {
echo "ファイルが選択されていません。";
}
$upload_file = "files/" . $_FILES["upfile"]["name"];
$file_get = file_get_content($upload_file);
echo $file_get;
</script>

質問者からの補足コメント

  • >header()を検討してはいかがですか。
    どうようにすればよいでしょうか。またプログラムは新米なのでよくわかりません。よろしく

    No.1の回答に寄せられた補足コメントです。 補足日時:2018/07/05 14:09

A 回答 (2件)

世の中にいろいろ出回っているファイルを開くためには、対応するソフトが必要だってことは理解していますよね?じゃあ、ブラウザってそこまであらゆるファイルが開けるほど万能なんですかって聞かれたらどうです?



ブラウザでちゃんと見えるようにしたければ、ブラウザが理解できる形(HTMLやXMLなど)で与えないとダメなんですよ。今のやり方は人間で例えれば、ロシア語のキリル文字で書いてある文書をカタカナにして、ほら日本語だぞ読めるだろって言ってるようなものです。

だから今回のそれも、HTMLにしてりゃいいだろってやり方じゃなく、PDFだ何だといったファイルの中身を解析して、ちゃんとHTMLの文法に則った形に変換してからブラウザに渡さないといけない。これ、すんげ~面倒ですよ。いろんなデータの構造を理解してないと絶対にできないので。

ちなみにdocxやxlsxのファイルはXMLで記述されているものをzip圧縮しています。なので拡張子をzipにして解凍すると中身のXMLフォーマットを覗き見できるんで、興味があったら見てみましょう。
    • good
    • 0

htmlと認識しているドキュメント内に、ファイルの中身をそのまま出力すればそりゃそうなりますね。


header()を検討してはいかがですか。
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!