Zeile 288 | Zeile 288 |
---|
} }
|
} }
|
// Next check the file size if($avatar['size'] > ($mybb->settings['avatarsize']*1024) && $mybb->settings['avatarsize'] > 0) { delete_uploaded_file($avatarpath."/".$filename); $ret['error'] = $lang->error_uploadsize; return $ret;
| // Check a list of known MIME types to establish what kind of avatar we're uploading $attachtypes = (array)$cache->read('attachtypes');
$allowed_mime_types = array(); foreach($attachtypes as $attachtype) { if(defined('IN_ADMINCP') || is_member($attachtype['groups']) && $attachtype['avatarfile']) { $allowed_mime_types[$attachtype['mimetype']] = $attachtype['maxsize']; }
|
}
|
}
|
// Check a list of known MIME types to establish what kind of avatar we're uploading switch(my_strtolower($avatar['type']))
| $avatar['type'] = my_strtolower($avatar['type']);
switch($avatar['type'])
|
{ case "image/gif": $img_type = 1;
|
{ case "image/gif": $img_type = 1;
|
break;
| break;
|
case "image/jpeg": case "image/x-jpg": case "image/x-jpeg": case "image/pjpeg": case "image/jpg": $img_type = 2;
|
case "image/jpeg": case "image/x-jpg": case "image/x-jpeg": case "image/pjpeg": case "image/jpg": $img_type = 2;
|
break;
| break;
|
case "image/png": case "image/x-png": $img_type = 3;
|
case "image/png": case "image/x-png": $img_type = 3;
|
| break; case "image/bmp": case "image/x-bmp": case "image/x-windows-bmp": $img_type = 6;
|
break; default: $img_type = 0; }
// Check if the uploaded file type matches the correct image type (returned by getimagesize)
|
break; default: $img_type = 0; }
// Check if the uploaded file type matches the correct image type (returned by getimagesize)
|
if($img_dimensions[2] != $img_type || $img_type == 0)
| if(empty($allowed_mime_types[$avatar['type']]) || $img_dimensions[2] != $img_type || $img_type == 0)
|
{ $ret['error'] = $lang->error_uploadfailed; delete_uploaded_file($avatarpath."/".$filename); return $ret; }
|
{ $ret['error'] = $lang->error_uploadfailed; delete_uploaded_file($avatarpath."/".$filename); return $ret; }
|
| // Next check the file size if(($avatar['size'] > ($mybb->settings['avatarsize']*1024) && $mybb->settings['avatarsize'] > 0) || $avatar['size'] > $allowed_mime_types[$avatar['type']] && !($mybb->settings['avatarsize'] > 0)) { delete_uploaded_file($avatarpath."/".$filename); $ret['error'] = $lang->error_uploadsize; return $ret; }
|
// Everything is okay so lets delete old avatars for this user remove_avatars($uid, $filename);
|
// Everything is okay so lets delete old avatars for this user remove_avatars($uid, $filename);
|
|
|
$ret = array( "avatar" => $mybb->settings['avataruploadpath']."/".$filename, "width" => (int)$img_dimensions[0],
| $ret = array( "avatar" => $mybb->settings['avataruploadpath']."/".$filename, "width" => (int)$img_dimensions[0],
|
Zeile 386 | Zeile 405 |
---|
return $ret; }
|
return $ret; }
|
$attachtypes = $cache->read('attachtypes');
| $attachtypes = (array)$cache->read('attachtypes');
|
$attachment = $plugins->run_hooks("upload_attachment_start", $attachment);
|
$attachment = $plugins->run_hooks("upload_attachment_start", $attachment);
|
| $allowed_mime_types = array(); foreach($attachtypes as $ext => $attachtype) { if(!is_member($attachtype['groups']) || ($attachtype['forums'] != -1 && strpos(','.$attachtype['forums'].',', ','.$forum['fid'].',') === false)) { unset($attachtypes[$ext]); } }
|
$ext = get_extension($attachment['name']); // Check if we have a valid extension
| $ext = get_extension($attachment['name']); // Check if we have a valid extension
|