web-dev-qa-db-ja.com

Docとpdfはアップロードできますがpptはできません - セキュリティ上の理由から許可されていません

「ここに検索エンジンを挿入してください」というのはこれでは意味がありません - wp-includes/functions.phpwp-admin/includes/file.phpなどを調べたことがありますが、動作の理由がわかりません。

私はマルチサイトを運営していて、.docや.pdfをアップロードしても問題はありません。実際のファイル名やMIMEタイプ(.pptが.txtに変更され、.txtが.pptに変更された)に関係なく、.pptをアップロードすると、「このファイルの種類はセキュリティ上の理由から許可されません」他の説明はほとんどありません。

私はmimesテーブルを修正する必要がありますか(そしてもしそうであれば、これのための構文は何ですか)、オーバーライドを追加する必要がありますか、それは私のApache confの中で何かですか?私はいくつかの場所で物事を封じ込もうと試みるために面白いいじりをしました。おそらく.potファイルをブロックします。

7
Andrew

マルチサイトネットワーク管理者設定を調べている間それを見つけました:許可されたファイルタイプのリストを含む "アップロードファイルタイプ"と呼ばれる設定があります(データベースでそれはmeta_keyテーブルのwp_sitemeta = "upload_filetypes"の行です)。リストに "ppt"を追加するとそれらをアップロードすることができます。

6
Andrew

WordPressはあなたがDBでそれをすることによってしたこと以外にこれらの設定を変更するためにどこにも持っていないようです。しかし、あなたはこのコードを使ってみましたか?

<?php
add_filter('upload_mimes', 'custom_upload_mimes');
function custom_upload_mimes ( $existing_mimes = array() ) {
    // add your extension to the array
    $existing_mimes['ppt'] = 'application/vnd.ms-PowerPoint';
    // or: $existing_mimes['ppt|pot|pps'] = 'application/vnd.ms-PowerPoint';
    // to add multiple extensions for the same mime type
    // add as many as you like
    // removing existing file types
    unset( $existing_mimes['exe'] );
    // add as many as you like
    // and return the new full result
    return $existing_mimes;
}
?>

テーマ関数ファイルでそのコードを使用してください。フィルタupload_mimesは明らかにあなたが他の許可されたアップロード拡張を設定することを可能にし、そしてまたWPで使用するための拡張MIMEタイプを正しく設定します。さらにこのようにすることの利点は、アップグレードが安全であるということです。

あなたがMIMEタイプのリストを必要とするならば: http://www.w3schools.com/media/media_mimeref.asp

5
Brady