• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MIMEタイプの取得について)

MIMEタイプの取得方法と統一の問題

このQ&Aのポイント
  • ファイルをアップロードし、MIMEタイプを取得する方法についての要約です。
  • 特定の拡張子に対して、異なるMIMEタイプが返される場合について統一の問題が発生しています。
  • zip形式のファイルについては、どのように対処すべきか悩んでいます。

質問者が選んだベストアンサー

  • ベストアンサー
noname#189141
noname#189141
回答No.1

プログラムでどうこうするのではなく、WebサーバーのMIMEタイプを設定してください。 http://technet.microsoft.com/ja-jp/library/ee309278(v=office.12).aspx Office2007以降のファイル(.docx とかxがつくもの)の実体はzip圧縮ファイルですので、拡張子をzipにすると解凍できます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • WordPressの質問(q10124692)の続

    https://wandbox.org/permlink/xgiSHSJPTNlBrtmO $mime_type から $ext を決めて、テンポラリファイルを $data に読み込めばPDFと動画にも適応できるようです。間違えていたらアドバイスお願い致します。 以前dell_okさんにバイナリーデータがどうしても必要だとお伝えしていたのですが、finfo_open(finfoクラス)はmime_typeを返すのに、拡張子では判断せずバイナリを読み込んでチェックするのでバイナリーのチェックは要らないようですね、申し訳ありません。 名前とメッセージはエラーチェックやtokenがあるためdell_okさんから教えて頂いたコードを使うように考えています。 アップロードファイルについてはおそらくこちらのコードを使うか参考に組み替える必要があると考えております。 //mime_typeを返すのに、拡張子では判断せずバイナリを読み込んでチェック //ファイルの種類を表示するために宣言 $finfo = new finfo(FILEINFO_MIME_TYPE); $mime_type = $finfo->file($path); if (FILE_EXT_PNG == $ext && 'image/png' == $mime_type) { } elseif (in_array($ext, [FILE_EXT_JPEG, '.jpg']) && 'image/jpeg' == $mime_type) { $ext = FILE_EXT_JPEG; } else { // バイナリー文字列確認 $contents = file_get_contents($path); if (FILE_EXT_PDF == $ext && 'application/pdf' == $mime_type) { } elseif (FILE_EXT_MP4 == $ext && 'video/mp4' == $mime_type) { } else { $ext = null; } } return $ext; if (isset($ext)) { $_SESSION['attach_name'][$key] = md5($data) . $ext; $_SESSION['attach_data'][$key] = $data; $_SESSION['attach_mime'][$key] = $mime_type; } else $err[] = '画像形式は png, jpg のみです。'; } } }

    • ベストアンサー
    • PHP
  • docとdocxファイルの違いを教えてください。

    docはword2003まで使われていたファイル形式で docxは2007以降で使われているファイル形式です。 docで作成したファイルをdocxとして保存するとファイルサイズが若干小さくなりますが、 docと比べてdocxで保存した場合の利点を教えてください。 意外と検索してもほとんど説明してあるページが見つからなかったので 教えてください。 できれば、xlsとxlsxやpptとpptxの違いについて解説してあるページとかあれば教えてください。

  • 仕事のメールでOffice2007で作成したと思われるXML文書が送ら

    仕事のメールでOffice2007で作成したと思われるXML文書が送られてきました。 拡張子はZIPの圧縮ファイル形式だったのですが、docxなりxlsxなりpptxなりに 変更して開いてみても さらにZIPで圧縮されたのかと「コンバータでファイルが保存されませんでした。」と出て すんなり開くことができません。 これはどういう状態なのでしょうか? どうにかして開くことができますか? よろしくお願いします。 もしかしてdocxなりをさらに圧縮ソフトでZIP保存しておかしくなっているとかでしょうか? もしそうした場合はどうなるのでしょうか?

  • AddTypeで指定したMIMEタイプが適用されない?

    次のような2つのファイルがhttp://example.example/にあるとします。 .htaccess (内容は下に表示) index.html (適当なxhtml文書) ---- .htaccess ---- AddType application/xhtml+xml html DirectoryIndex index.html ------------------- そこでhttp://example.example/にアクセスすると、 index.htmlへアクセスされるわけですが、 この時のMIMEタイプはtext/htmlになってしまいます。(サーバの元々の設定が適用される) http://example.example/にアクセスしてMIMEタイプapplication/xhtml+xmlで取得するにはどのようにすればいいのでしょうか。

    • ベストアンサー
    • HTML
  • 圧縮ファイルの取得

    http://okwave.jp/qa/q8823112.html こちらで質問させていただいたように、/public_html/file.zipではなく、/file.zipの ファイルをダウンロードさせるために以下の方法を取りました。 print "Content-type: application/x-tar\n\n"; open( FH, "$filename" ); binmode FH; binmode STDOUT; print <FH>; close( FH ); この方法では、ブラウザで表示させてダウンロードできるようになったのですが、 これをperlで、wgetか、何かを使って取得したいと考えています。 ところが、wgetで試したところ、zipファイルではなく、cgiページ自体のソースの取得になってしまいました。 zipファイルを取得するにはどのようにしたらよいのでしょうか。 perlの知識があまりないので、どうしても解決できません。 宜しければ具体的に書き方を教えていただけると大変助かります。どうぞよろしくお願いいたします。

    • ベストアンサー
    • Perl
  • ファイルのMINEタイプ?の取得

    JoyfulNoteを参考にしながら画像アップロード掲示板のようなものを製作していますが、JoyfulNoteのソースに foreach (@in) {  if (/(.*)Content-type:(.*)/i) { $tail=$2; }  if (/(.*)filename=(.*)/i) { $fname=$2; }  if (/application\/x-macbinary/i) { $macbin=1; } } という処理がありました。 ちょっと、参考にしてみようと思い探してみたのですが、@inを使用しているところが見当たりません。。 画像のMINEタイプ?等の情報はどのようにして取得するのでしょうか?よろしくお願いします。

    • ベストアンサー
    • Perl
  • MIME emlの解析に関して

    Perlにて、 emlの本文(htmlとplain)の取得をしたいです。 ライブラリとして、 Email::MIME を使用しております、現在以下の様な感じです。 my $parsed = Email::MIME->new($text); for my $part ($parsed->parts) { if($part->{ct}{discrete} !~ /^text/){ }elsif($part->content_type =~ m|text/html|){ #html }else{ #plain } この状態で$part->body_strや$part->bodyで取得が可能かと考えておりましたが、 emlにて入れ子構造が上手く取得出来ず、困っております。 やり方等、如何様でも構いませんので、ご指摘頂ければ幸いで御座います。 sampleのEML※サンプルなのでhtmlはhtml形式になっておりません。 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ Return-Path: <test@test.jp> X-Original-To: test@test.jp Delivered-To: test@test.jp X-Env-Sender: test@test.jp Date: Wed, 7 Dec 2011 02:48:11 -0600 (CST) From: <test@test.jp> To: test@test.jp Subject: =?UTF-8?B?dGVzdA==?= =?UTF-8?B?dGVzdA?= =?UTF-8?B?dGVzdA?= =?UTF-8?B?dGVzdA==?= Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_33646_1423332566.1323247678520" ------=_Part_33646_1423332566.1323247678520 Content-Type: multipart/alternative; boundary="----=_Part_33649_2021685376.1323247678532" ------=_Part_33649_2021685376.1323247678532 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 dGVzdA == ------=_Part_33649_2021685376.1323247678532 Content-Type: text/html;charset=UTF-8 Content-Transfer-Encoding: base64 dGVzdA== ------=_Part_33649_2021685376.1323247678532-- ------=_Part_33646_1423332566.1323247678520-- \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

    • ベストアンサー
    • Perl
  • lhacaでxlsxファイルを圧縮

    OFFICE2007以降で作成される、拡張子がxlsx、docx、pptxのファイルですが 実態は圧縮済みのZIPファイルとのこと。 圧縮ソフトlhacaにて、これらのファイルをしようとして、lhacaの画面を開いて ドラッグ&ドロップしても、逆に解凍された中のファイルが見えるだけです。 これは仕方ないのかもしれません。 しかし、xlsxのファイルをメールなどで送るため パスワード付きのZIPファイルにしたいのです。 これをlhacaで実施したいのですが方法がわかりません。 ご存知の方、お教え願います。 なお、会社で許されている圧縮ソフトはOS標準機能とlahcaだけですので その他のソフトの利用はできない前提でお願いします。

  • Office2007で、下位バージョンとの互換性のあるファイルを作るには?

    よろしくお願いいたします。 Office2007では、デフォルトでXML形式のファイル(docx,xlsx,pptx等)が作成されますが、これをデフォルトで今までのファイル形式(doc,xls.ppt等)で保存するようには出来るのでしょうか。 当面は、今までのファイル形式(doc,xls.ppt等)を、外部との連絡等の為、オフィス内でスタンダードにしたく、しかしOffice2007にバージョンアップする必要がある為です。 アドオンソフトを使えば、XML形式のファイルもバージョン2000,2003等でも開けるかと思いますが、外部にそれを強いることは難しいと思っています。

  • office2007形式のファイルをアップロードすると.zipになる

    office2007形式のファイルをアップロードすると.zipになる HP作成途中で色々調べたのですが、1人では解決できない問題がありましたので、 質問させていただきます 1)office2007形式のファイル(.docx/.xlsx/.pptx)をアップロードすると、  ダウンロード時.zip形式の圧縮ファイルになってしまい、保存時手動で直さなくては  いけないのを、プログラムで自動化できないか 2)現在のプログラムでは、ファイル名に日本語が入っていると、アップロードはできるが  ダウンロードができないので、解決法はないか 以上の2点です。必要であればソースも載せますので、よろしくお願いします。

    • ベストアンサー
    • Perl