質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

740閲覧

WordPressのアップロードできる拡張子について

退会済みユーザー

退会済みユーザー

総合スコア0

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/09/21 02:55

編集2017/09/21 02:59

###前提・実現したいこと
WordPressのメディアからアップロードできる拡張子についてご質問します。
「.oft」「.msg」の拡張子のファイルをアップロードしたいと言われましたので、下記のソースコードをfunctions.phpに書いたのですが、アップロードできません。

アップロードしようとしたら
『セキュリティ上の理由によりこのファイル形式は許可されていません。』
というエラーメッセージが出ます。

原因が分からないので、解決策を教えていただけますでしょうか?
お手数をおかけしますが、お力添えをいただければ幸いです。

###該当のソースコード

function allow_upload_other($mimes){ $mimes['oft'] = 'application/vnd.ms-outlook'; $mimes['msg'] = 'application/x-msg'; return $mimes; } add_filter('upload_mimes', 'allow_upload_other'); function my_ext2type($y_ext2type) { array_push($y_ext2type, array('document' => 'oft')); array_push($y_ext2type, array('document' => 'msg')); return $y_ext2type; } add_filter('ext2type', 'my_ext2type');

###試したこと
my_ext2typeにある

array_push($y_ext2type, array('document' => 'oft')); array_push($y_ext2type, array('document' => 'msg'));

この記述の'document'を'text'にしたり'archive'にしてもエラーメッセージが出ます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2017/09/23 05:03

まだ質問が「受付中」になっていますが、いったん「解決済」にされてはいかがでしょうか。また、解決されていないなら状況を質問文に追記ください。
guest

回答1

0

ベストアンサー

未検証で失礼いたします。

wordpress

1function my_ext2type($y_ext2type) { 2 array_push($y_ext2type, array('document' => 'oft')); 3 array_push($y_ext2type, array('document' => 'msg')); 4 return $y_ext2type; 5} 6add_filter('ext2type', 'my_ext2type');

こちらを削除し前半部分だけにするとどうなりますでしょうか。
フィルターフックにext2typeという記述がないので。
http://wpdocs.osdn.jp/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3_API/%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%83%BC%E3%83%95%E3%83%83%E3%82%AF%E4%B8%80%E8%A6%A7

wp_ext2type()という関数はコアファイルにあり
拡張子、ファイルタイプを判別できるようですね。

投稿2017/09/21 03:15

ruuusaamarki

総合スコア468

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/09/21 03:29

ご回答ありがとうございます。 前半の function allow_upload_other 〜 の記述だけだとエラーメッセージが出たのでこちらのサイトを参考に後半の部分を追加しています。 http://happy.automaticfairys.com/post-437 ご指摘いただいたように前半のみで再度検証してみましたが、やはりエラーメッセージが出ます・・。
ruuusaamarki

2017/09/21 04:23

検証してみました。 当方の環境でですがminetypeを変更したらうまくいきました。 $mimes['msg'] = 'application/CDFV2-corrupt'; 詳細は下記サイトで解説してくれていました。 https://cunelwork.co.jp/blog/web/wp%E3%81%AE%E3%83%A1%E3%83%87%E3%82%A3%E3%82%A2%E3%81%AB%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89%E3%81%8C%E5%87%BA%E6%9D%A5%E3%81%AA%E3%81%84/ phpのバージョンによってこの値が変わるようで お使いの環境で確認するのが確実かもしれません。 http://ysklog.net/php/1577.html
ruuusaamarki

2017/09/21 04:33

当方の環境ではoftも同じでいけました。 $mimes['oft'] = 'application/CDFV2-corrupt'; function allow_upload_other($mimes){ $mimes['oft'] = 'application/CDFV2-corrupt'; $mimes['msg'] = 'application/CDFV2-corrupt'; return $mimes; } add_filter('upload_mimes', 'allow_upload_other');
退会済みユーザー

退会済みユーザー

2017/09/21 04:47

検証までしていただきありがとうございます! 無事アップロードできました! あれから調べてみたのですが、このサイトにある http://ulrike-haessler.de/wordpress-svg-upload-nicht-mehr-unter-wordpress-4-7-1/ add_filter( 'wp_check_filetype_and_ext', function($data, $file, $filename, $mimes) { global $wp_version; if ( $wp_version !== '4.7.1' ) { return $data; } $filetype = wp_check_filetype( $filename, $mimes ); return [ 'ext' => $filetype['ext'], 'type' => $filetype['type'], 'proper_filename' => $data['proper_filename'] ]; }, 10, 4 ); こちらを試してみたらアップロードできたのですが、この記述はセキュリティに問題があるのでしょうか・・? global $wp_version; if ( $wp_version !== '4.7.1' ) { return $data; } この記述は省いて検証してみました。
ruuusaamarki

2017/09/23 04:07

返信が遅くなりまして申し訳ございません。 アップロードできてよかったです! おっしゃる通りセキュリティ面からも考えなければならない箇所だとおもいます。 セキュリティに関しては原因となる個所も多岐にわたり 一概に回答することが難しい問題だと思いますので あらためて質問を立てていただいたほうが確実かと思います。
退会済みユーザー

退会済みユーザー

2017/09/25 01:08 編集

こちらこそご連絡が遅くなりまして申し訳ございません。 セキュリティ面に問題があるかどうか確認したかっただけですので、ご回答いただきありがとうございます! 今回は教えていただいた内容で解決できましたので、自分で調べてみたことについてはまた質問しようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問