Kjapp og trygg hosting for Wordpress

Hindre opplasting av annet enn bilder i WP

kongen

kongemedlem
Hvordan kan jeg begrense hva forfattere kan laste opp i mediabibliotektet på en WP-innstallasjon? Jeg ønsker at forfattere bare kan laste opp bilder, og ikke videoer og annet som tar stor plass.

Og akkurat nå så kan man laste opp filer på hele 64MB. Hvordan kan man senke maksstørrelsen på filer som kan lastes opp?
 

agrimsrud

Medlem
Jeg ønsker at forfattere bare kan laste opp bilder, og ikke videoer og annet som tar stor plass.
Legg til dette i functions.php:
PHP:
add_filter('upload_mimes','begrens_filtyper');
function begrens_filtyper() {
	return array(
						'bmp' => 'image/bmp',
						'gif' => 'image/gif',
						'ico' => 'image/icon',
						'jpg|jpeg|jpe' => 'image/jpeg',
						'png' => 'image/png',
						'svg' => 'image/svg+xml',
						'tif|tiff' => 'image/tiff'
	);
}

Om du vil åpne for flere filtyper, finner du en full liste over MIME-typer f.eks. her: Multimedia MIME Reference
 

kongen

kongemedlem
Takk for svar.

Fant dette i functions.php

Kode:
function get_allowed_mime_types() {
	static $mimes = false;

	if ( !$mimes ) {
		// Accepted MIME types are set here as PCRE unless provided.
		$mimes = apply_filters( 'upload_mimes', array(
		'jpg|jpeg|jpe' => 'image/jpeg',
		'gif' => 'image/gif',
		'png' => 'image/png',
		'bmp' => 'image/bmp',
		'tif|tiff' => 'image/tiff',
		'ico' => 'image/x-icon',
		'asf|asx|wax|wmv|wmx' => 'video/asf',
		'avi' => 'video/avi',
		'divx' => 'video/divx',
		'flv' => 'video/x-flv',
		'mov|qt' => 'video/quicktime',
		'mpeg|mpg|mpe' => 'video/mpeg',
		'txt|asc|c|cc|h' => 'text/plain',
		'csv' => 'text/csv',
		'tsv' => 'text/tab-separated-values',
		'ics' => 'text/calendar',
		'rtx' => 'text/richtext',
		'css' => 'text/css',
		'htm|html' => 'text/html',
		'mp3|m4a|m4b' => 'audio/mpeg',
		'mp4|m4v' => 'video/mp4',
		'ra|ram' => 'audio/x-realaudio',
		'wav' => 'audio/wav',
		'ogg|oga' => 'audio/ogg',
		'ogv' => 'video/ogg',
		'mid|midi' => 'audio/midi',
		'wma' => 'audio/wma',
		'mka' => 'audio/x-matroska',
		'mkv' => 'video/x-matroska',
		'rtf' => 'application/rtf',
		'js' => 'application/javascript',
		'pdf' => 'application/pdf',
		'doc|docx' => 'application/msword',
		'pot|pps|ppt|pptx|ppam|pptm|sldm|ppsm|potm' => 'application/vnd.ms-powerpoint',
		'wri' => 'application/vnd.ms-write',
		'xla|xls|xlsx|xlt|xlw|xlam|xlsb|xlsm|xltm' => 'application/vnd.ms-excel',
		'mdb' => 'application/vnd.ms-access',
		'mpp' => 'application/vnd.ms-project',
		'docm|dotm' => 'application/vnd.ms-word',
		'pptx|sldx|ppsx|potx' => 'application/vnd.openxmlformats-officedocument.presentationml',
		'xlsx|xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml',
		'docx|dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml',
		'onetoc|onetoc2|onetmp|onepkg' => 'application/onenote',
		'swf' => 'application/x-shockwave-flash',
		'class' => 'application/java',
		'tar' => 'application/x-tar',
		'zip' => 'application/zip',
		'gz|gzip' => 'application/x-gzip',
		'exe' => 'application/x-msdownload',
		// openoffice formats
		'odt' => 'application/vnd.oasis.opendocument.text',
		'odp' => 'application/vnd.oasis.opendocument.presentation',
		'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
		'odg' => 'application/vnd.oasis.opendocument.graphics',
		'odc' => 'application/vnd.oasis.opendocument.chart',
		'odb' => 'application/vnd.oasis.opendocument.database',
		'odf' => 'application/vnd.oasis.opendocument.formula',
		// wordperfect formats
		'wp|wpd' => 'application/wordperfect',
		) );
	}

	return $mimes;
}

Hva om jeg sletter alle filtyper unntatt disse:

Kode:
		'jpg|jpeg|jpe' => 'image/jpeg',
		'gif' => 'image/gif',
		'png' => 'image/png',
		'bmp' => 'image/bmp',
		'tif|tiff' => 'image/tiff',

Vil det fungere på samme måte som agrimsrud sin løsning?
 

Pong

Jeg selger sʇɥƃıluʍop :)
For å virkelig sjekke om noe er et bilde kan du ikke stole på mimetype - da er det best å konvertere bildet mha gd-biblioteket på serveren.
En .exe eller js-kode som er kledd ut som bildefil og ble lastet opp blir så ikke lest av gd-koden (eller: den forstår ikke hva slags bilde det så måtte være), og du får da noe svart.

Du er *nødt* til å sjekke (og helst konvertere pga muligheten for å infisere bildefiler) med gd for å kunne garantere at et bilde faktisk er et bilde.
 
Topp