0

Moodle 1.9.7では、ユーザーがアップロードしたファイルの許可された拡張子のホワイトリストを何らかの方法で指定することは可能ですか?

4

1 に答える 1

0

ソースを見ると、モジュールが upload_manager を使用してアップロードされたファイルを処理するときに、ファイルタイプを制限する組み込みの方法はありません。また、ファイルのコンテンツに基づく MIME タイプの検出も使用されません。moodle の filelib ライブラリは、ファイル拡張子に基づいて MIME タイプを作成します。

ムードル アップロード マネージャー オブジェクトを使用しているモジュールに対してこれを行うための適切な方法は、既存の upload_manager クラスを拡張する新しいクラスを作成し、ファイル コンテンツに基づいて検証を追加することです。

次のようなものです。これを少し整理して、独自の検証コードで完成させる必要があります。

class upload_manager_strict extends upload_manager {
  var $allowed_types
  function upload_manager_strict($inputname='', $deleteothers=false, $handlecollisions=false, $course=null, $recoverifmultiple=false, $modbytes=0, $silent=false, $allownull=false, $allownullmultiple=true, $allowed_types=null) {
    $this->allowed_types = $allowed_types;
    parent::upload_manager_strict($inputname, $deleteothers, $handlecollisions, $course, $recoverifmultiple, $modbytes, $silent, $allownull, $allownullmultiple)
  }

  function validate_file(&$file) {
     $status = parent::validate_file(&$file);
     if ($status) {
         // do some mimetype checking and validation on the file $file['tmp_name'] 
         // could use $this->allowedtypes 
     }
     return $status;
  }
}
于 2010-07-15T14:27:37.367 に答える