Site icon Tosolini.info

WordPress: Caricare tipi di file non ammessi

Per default WordPress permette di effettuare l’upload solo di un determinato tipo di file. Questo per ragioni di sicurezza, visto che è uno dei prodotti più utilizzati nel web. Di fatto la lista è abbastanza esauriente ed è possibile visionarla nel codex ufficiale di WordPress.

Messaggio di diniego da parte del media uploader di WP

E’ possibile che di fronte ad un progetto anche minimamente più elaborato ci sia la necessità di dover utilizzare tipi di file alieni a tale lista. E’ quindi possibile ampliarla con due metodologie distinte, una selettiva attraverso del codice in functions.php (o attraverso un plugin specifico) ed una molto ampia da indicare nel file wp-config.php.

Partiamo da quest’ultima, ed è quella che cito perché esiste come funzionalità, ma esorto a non utilizzarla perché è quella che di fatto espone a rischi (caricare file malevoli, come eseguibili) o a scocciature, ad esempio se avete più utenti vi vederete caricare file grafici non ordinari per il web come .bmp o .wmf. La modifica nel file wp-config.php, presente nella radice di WordPress è quanto mai semplice, a fine file basterà aggiungere:

define( 'ALLOW_UNFILTERED_UPLOADS', true );

da qui in poi, qualsiasi cosa mandate in pasto al media upload sarà accettata.

La seconda opzione, è quella di indicare esattamente quali tipi di file aggiuntivi caricare, e volendo anche quali tipi di file presenti nella lista base di WordPress NON caricare nel caso fosse nostra esigenza farlo.

Questa parte di codice va caricata nel file functions.php del proprio tema, oppure caricata in apposito plugin. Per comodità vediamo il caricamento all’interno del tema grafico. Vediamo ad esempio la necessità di caricare file kmz o kml di Google Earth.


function miei_myme_types($mime_types){
        $mime_types[‘kml’] = ‘application/vnd.google-earth.kml+xml’; //Aggiungo estensione kml
        $mime_types[‘kmz’] = ‘application/vnd.google-earth.kmz’; //Aggiungo estensione kmz
    return $mime_types;
}
add_filter('upload_mimes', 'miei_myme_types', 1, 1);

Faccio notare l’utilizzo degli apici [textmarker color=”000000″] ‘  ’ [/textmarker] differenti rispetto al classico apice [textmarker color=”000000″] ‘ [/textmarker] che non permetterebbero il corretto funzionamento del codice (o almeno nel mio caso è stato necessario impostarlo in questo modo).

Quindi per aggiungere un nuovo tipo di file andrà dichiarata l’estensione  $mime_types[‘estensione_desiderata’] e quindi indicato se si tratta di un application o un image o un video o un audio oppure un text per codice, seguito dal tipo di estensione ed eventuale programma per aprirlo. Per scoprirlo utilizzate una ricerca in Google, tipo mime type + estensione.

Per poter disattivare invece una delle estensioni preconfigurate da wordpress, si può aggiungere il codice seguente alla fine dell’ultima dichiarazione di $myme_types[ ]

unset($mime_types['xls']);

in questo caso abbiamo eliminato l’upload di file xls.

Come si può notare è piuttosto semplice poter ampliare il parco di file da inserire mantenendo comunque un controllo sul nostro sistema.

Exit mobile version