In Moodle 1.9.7, bu dosyaların yüklendiği bir şekilde kullanıcı için izin verilen uzantıları bir beyaz liste belirtmek mümkündür?
Kaynağında baktığımızda, hiçbir modülü yüklenen dosyaları işlemek için upload_manager kullandığınızda filetypes sınırlamak şekilde orada inşa edilmiştir. Ayrıca dosyaların içeriğine dayalı herhangi mimetype algılama hiçbir faydası yoktur. Dosya uzantısına moodle üssü FileLib kütüphaneler kendi mimetype.
Moodle yükleme yöneticisi nesnesini kullanarak ise bir modül için bunu yapmak için bir temiz bir şekilde, mevcut upload_manager sınıfını genişleten yeni bir sınıf yazmak ve dosya içeriğine göre bazı Validatation eklemek olacaktır.
Eğer biraz bu kadar düzenli gerekiyor, ve kendi doğrulama kodu ile tamamlamak edeceğiz - Aşağıdaki gibi bir şey.
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;
}
}