ファイルのアップロードに関数を使用していmime_content_type()
ます。ローカルホストでは問題なく動作しますが、ライブ サーバーで次のエラーが発生します。
致命的なエラー: 未定義関数 mime_content_type() の呼び出し
ファイルのアップロードに関数を使用していmime_content_type()
ます。ローカルホストでは問題なく動作しますが、ライブ サーバーで次のエラーが発生します。
致命的なエラー: 未定義関数 mime_content_type() の呼び出し
更新:
mime_content_type()
もはや非推奨ではなく、php7 はこの関数をサポートしています。
私の答えの以前のバージョン:
mime_content_type()
おそらく [fileinfo][1] がファイルに関する情報などを提供できるためです。以下に示すように finfo() を使用できます。
function _mime_content_type($filename) { $result = new finfo(); if (is_resource($result) === true) { return $result->file($filename, FILEINFO_MIME_TYPE); } return false; }
mime_magic
拡張機能をオンにする必要があります。php.ini を確認し、phpinfo() を調べます。ちなみに、この関数は、PECL 拡張機能のFileinfoが同じ機能 (およびそれ以上) をよりクリーンな方法で提供するため、推奨されていません。
Windows ユーザーは、バンドルされている php_fileinfo.dll DLL ファイルを php.ini に含めて、この拡張機能を有効にする必要があります。
libmagic ライブラリは PHP にバンドルされていますが、PHP 固有の変更が含まれています。libmagic.patch という名前の libmagic に対するパッチが維持されており、PHP fileinfo 拡張ソース内で見つかる場合があります。
ファイルを編集してphp.ini
コメントを外しextension=fileinfo
ます。
HTTP サーバー (Apache など) を再起動します。
echo mime_content_type($path_absolute.$file);//Outputs: application/pdf
ファイルを編集してphp.ini
コメントを外しextension=php_fileinfo.dll
ます。
HTTP サーバー (Apache など) を再起動します。
echo mime_content_type($path_absolute.$file);//Outputs: application/pdf
共有ホスティングを使用している場合、fileinfo PHP 拡張機能が有効になっていないか、インストールされていない可能性があります。
有効になっていない場合は、CPanel の [ソフトウェア]セクションに移動し ( CPanelを使用していない場合は、コントロール パネルのドキュメントを参照してください)、[ PHP バージョンの選択] (またはそれに関連するもの) をクリックし、ボックスをオンにして拡張機能を有効にします。アクションを保存します。
インストールされていない場合、拡張機能は の PHP 拡張機能の一部にはなりません。Windows を使用している場合は、ファイルをcPanel > Software > Select PHP Version > Extensions
編集してコメントを外してください。これらのいずれかが機能しない場合は、ホスティング プロバイダーのドキュメントを参照してください。php.ini
extension=php_fileinfo.dll