WordPress 4.7.1: Este tipo de arquivo não é permitido por razões de segurança

Algumas pessoas relataram no fórum brasileiro do WordPress um problema após atualizar suas instalações para a versão 4.7.1: não é mais possível fazer upload de alguns tipos de arquivos. Esse é um bug já detectado e que pode ser acompanhado aqui.

O WordPress tem uma lista de extensões permitidas. Arquivos .rar, por exemplo, não são suportados por padrão. Para acrescentá-los você poderia usar o código abaixo no functions.php do seu tema. Ele faz uso do filtro upload_mimes.

function custom_upload_mimes( $existing_mimes = array() ) {
    $existing_mimes['rar'] = 'application/x-rar-compressed';
    return $existing_mimes;
}
add_filter( 'upload_mimes', 'custom_upload_mimes' );

Repare que a chave do novo elemento do array é a extensão do arquivo e seu valor é o mimetype. Essa string não era usada para arquivos que não fossem imagens, mas passou a ser testada na versão 4.7.1. O que acontece é que vários arquivos, quando baixados da internet, vem com o mimetype diferente do padrão e, por isso, o WordPress impede o upload. Por isso, ao tentar subir alguns arquivos .pdf, seu WordPress impedirá o upload: o mimetype do seu arquivo está diferente do esperado.

A solução fácil e rápida seria adicionar a seguinte linha ao seu wp-config.php, logo acima da linha que diz /* Isto é tudo, pode parar de editar! :) */:

define( 'ALLOW_UNFILTERED_UPLOADS', true );

Essa solução deve ser temporária: ela permite que todos os tipos de arquivos sejam enviados por todos os usuários, portanto um usuário com apenas função de autor poderia enviar um arquivo executável para o seu servidor.

Teve esse problema? Conseguiu resolver? Não esqueça de deixar sua experiência nos comentários. E reparou que novas extensões podem ser adicionadas com o uso de um filtro? Saiba mais acessando o post sobre hooks no WordPress: actions e filters.

 

Update 16h27min: Lançaram um plugin que resolve o problema enquanto isso, o Disable Real MIME Check.

Tags:

Comentários

  • Gabriel Rodrigues

    Fala Felipe!
    Eu tentei esse método para resolver o problema mas aparentemente nada aconteceu… Tentei as duas formas mas não obtive sucesso. Seria o caso de reiniciar o servidor de hospedagem?

  • Felipe Elia

    Olá Gabriel! Chegou a tentar o plugin também? Qual é o tipo de arquivo que você está tentando usar?

  • Fala, Gabriel!

    Tentei aqui e funcionou. Porém, tive que inserir os dois códigos. Acredito que não sejam duas formas de fazer e sim apenas uma. Seria isso, @felipe_elia:disqus ?

    No mais, muito obrigado, Felipe por publicar uma solução. Me ajudou. Abraço!

  • Gabriel Rodrigues

    Oi Felipe! Consegui depois aqui. O erro era meu.
    Muito obrigado pela atenção e pela ajuda.

  • Gabriel Rodrigues

    Valeu Henrique!
    Rolou aqui. Eu estava errando.

    Obrigado pelo help!

  • Felipe Elia

    Oi Henrique, valeu pela informação. Com qual tipo de arquivo você está trabalhando? Para tipos não suportados pelo WordPress é preciso as duas formas, senão ACHO que só a segunda já resolve. 🙂

  • Ah, bacana. Não cheguei a testar só com a segunda. Estava tendo dificuldades com arquivos “.rar”.

  • Murilo Oliveira

    Cara,Gratidão! Deu certo!

  • Yuri Motoyama

    Amigo, vc me salvou!! Deu certinho aqui! Abração

  • Emmanuel Alexandre Tavares

    Parabéns cara. Matou na veia. Como pode os caras fazerem esse tipo de m…..

  • Fabiana Mateus

    Pessoal desculpas minha ignorância estou aprendendo agora, em qual linha ou aonde insiro o filtro?

  • Johnny Pereira

    Onde encontro esse arquivo functions.php ? Estou tentando fazer upload de algumas musicas e não consigo devido a este erro. Se alguem puder me ajudar ficarei grato.

  • Felipe Elia

    Pode inserir “logo acima da linha que diz /* Isto é tudo, pode parar de editar! 🙂 */”, no wp-config.php.

  • Felipe Elia

    Na pasta do seu tema. Normalmente os temas estão na pasta wp-content/themes.