Falls man die Fehlermeldung „File type does not meet security guidelines. Try another.“ erhält, so muss die Liste der akzeptierten Mime Typen (siehe auch: http://www.iana.org/assignments/media-types/) / Dateitypen erweitert werden.
Der entprechende Code ist in /wp-includes/functions.php zu finden (WordPress Version 3.0.4):
[code]
…
function wp_upload_bits( $name, $deprecated, $bits, $time = null ) {
if ( !empty( $deprecated ) )
_deprecated_argument( __FUNCTION__, ‚2.0‘ );
if ( empty( $name ) )
return array( ‚error‘ => __( ‚Empty filename‘ ) );
$wp_filetype = wp_check_filetype( $name );
if ( !$wp_filetype[‚ext‘] )
return array( ‚error‘ => __( ‚Invalid file type‘ ) );
…
function wp_check_filetype( $filename, $mimes = null ) {
if ( empty($mimes) )
$mimes = get_allowed_mime_types();
$type = false;
$ext = false;
foreach ( $mimes as $ext_preg => $mime_match ) {
$ext_preg = ‚!\.(‚ . $ext_preg . ‚)$!i‘;
if ( preg_match( $ext_preg, $filename, $ext_matches ) ) {
$type = $mime_match;
$ext = $ext_matches[1];
break;
}
}
return compact( ‚ext‘, ‚type‘ );
}
…
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‘,
…
[/code]
Die Funktion get_allowed_mime_types() einfach um den benötigten Dateityp / Mime Typ erweitern.
‚Dateierweiterung‘ => ‚Mime Typ‘
Unter *nix kann der Mime Typ mittels „file -i Dateiname“ angezeigt werden. Ein Tool für Windows ist mir derzeit nicht bekannt.
Quellen:
http://en.support.wordpress.com/accepted-filetypes/
http://www.snilesh.com/resources/wordpress/wordpress-tips-and-tricks/wordpress-file-type-does-not-meet-security-guidelines-try-another-error/