Nahrávání nepovolených typů souborů

WordPress z bezpečnostních důvodů dovoluje nahrávat pouze klasické obrázkové/video formáty a některé textové dokumenty. Co když ale potřebujete nahrát něco méně běžného, např. obrázek ve formátu SVG? Podle následujícího návodu si povolíte nahrávání dalších typů souborů.

WordPress dovoluje nahrávat pouze soubory s těmito příponami: jpg, jpeg, png, gif, ico, pdf, doc, ppt, odt, xls, psd, mp3, m4a, ogg, wav, mp4, mov, wmv, avi, mpg, ogv, 3gp, 3g2.

Pokud se pokusíte nahrát některý z nepovolených typů souborů, WordPress odmítne soubor nahrát a zobrazí chybovou hlášku:

Nahrávání souborů

Hlavním důvodem těchto otravných omezení je bezpečnost. Pokud by se na váš web dostal např. nějaký zákeřný script, mohl by to být obrovský problém. To však neznamená, že si pomocí krátkého kódu nemůžete vyjmenovat další typy bezpečných souborů, které potřebujete uploadovat.

Následující kód vložte do souboru functions.php nebo do vlastního pluginu:

function my_myme_types($mime_types){
     $mime_types['svg'] = 'image/svg+xml'; // Povoleni SVG
     $mime_types['psd'] = 'image/vnd.adobe.photoshop'; // Povoleni PSD
     $mime_types['webp'] = 'image/webp'; // Povoleni WebP
     return $mime_types;
 }
 add_filter('upload_mimes', 'my_myme_types', 1, 1);

Všimněte si, že přípona souboru (např. svg) je označena jako $mime_types a typ souboru následuje jako hodnota. Takto můžete vyjmenovat více druhů souborů. Pro další typ souboru stačí zkopírovat řádek a doplnit správnou příponu a typ. V tomto příkladu se mezi povolené typy souborů přidávají formáty SVG a PSD.

Tabulku přípon a k nim správné hodnoty $mime_types naleznete na freeformatter.com/mime-types-list.

Doufám, že vám tento návod pomohl povolit nahrávání požadovaného typu souboru. Jestliže ale nahrání souboru neproběhne z důvodu velikosti, přečtěte si návod na zvýšení PHP upload limitu.