# Como corrigir mídia que não faz upload no WordPress

Quando o upload de mídia no WordPress falha, a imagem ou arquivo não chega à Biblioteca de Mídia. As causas mais comuns são permissões erradas na pasta wp-content/uploads, o limite de tamanho de upload do servidor abaixo do arquivo enviado, ou memória PHP insuficiente para processar a imagem.

## O que é o upload de mídia que não funciona?

O upload de mídia que não funciona é quando o WordPress recusa ou interrompe o envio de um arquivo para a Biblioteca de Mídia. O fluxo de upload depende de três coisas no servidor: a pasta wp-content/uploads precisa ter permissão de escrita, o arquivo precisa caber nos limites de tamanho do PHP, e precisa haver memória suficiente para o WordPress gerar as miniaturas. Se qualquer uma falha, o envio para sem completar.

## Como identificar

- Mensagem "Unable to create directory uploads. Is its parent directory writable by the server?".
- Mensagem "The uploaded file could not be moved to wp-content/uploads.".
- A barra de progresso do upload chega ao fim e o arquivo simplesmente não aparece na biblioteca.
- Imagens grandes falham, mas arquivos pequenos sobem normalmente (sintoma de limite de tamanho).

**Antes de começar:** Nunca use permissão 777 na pasta uploads para forçar o upload: isso deixa o diretório gravável por qualquer um e é uma porta para malware. O valor correto é 755 para a pasta com o dono certo. Faça backup antes de alterar permissões em massa.

## Como prevenir

- Mantenha wp-content/uploads em 755 com o dono correto após cada migração de hospedagem
- Deixe upload_max_filesize e post_max_size com folga (64M ou mais) para imagens grandes
- Redimensione fotos antes de enviar e use otimização de imagem para não esbarrar nos limites

Erros relacionados

- [Como corrigir HTTP error ao enviar imagem](https://full.services/wp-fixer/corrigir-http-error-upload-imagem-wordpress/)
- [Como corrigir upload_max_filesize excedido](https://full.services/wp-fixer/corrigir-upload-max-filesize-wordpress/)
- [Como aumentar o limite de memória PHP no WordPress](https://full.services/wp-fixer/aumentar-limite-memoria-php-wordpress/)

## Causa

- Permissões erradas na pasta wp-content/uploads (precisa ser 755 e pertencer ao usuário do servidor web).
- Limite upload_max_filesize ou post_max_size do PHP menor que o arquivo enviado.
- Memória PHP insuficiente para o WordPress redimensionar a imagem e gerar miniaturas.
- Dono (ownership) do diretório incorreto após uma migração de hospedagem.
- Plugin de segurança ou de otimização de imagem interceptando e bloqueando o upload.

## Como resolver

1. Cheque o limite de tamanho: em Mídia > Adicionar nova, veja o "Tamanho máximo de upload". Se o seu arquivo for maior que esse valor, o limite do servidor é a causa e precisa ser elevado.
2. Corrija as permissões via FTP: aplique a permissão padrão na pasta de uploads, recursivamente:

```
chmod 755 wp-content/uploads
chmod 644 nos arquivos dentro de uploads
```

3. Confirme o dono da pasta: peça ao suporte da hospedagem para verificar se wp-content/uploads pertence ao usuário do servidor web (geralmente www-data). Dono errado bloqueia a escrita mesmo com 755.
4. Aumente a memória PHP: edite o wp-config.php para dar memória suficiente ao processamento da imagem:

```
define('WP_MEMORY_LIMIT', '256M');
```

5. Teste sem plugins: desative plugins de segurança e de otimização de imagem via FTP. Se o upload voltar, reative um a um para achar qual intercepta o envio.

## Código

```ini
; php.ini (ou .user.ini na raiz) — eleva os limites que travam o upload de midia
upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
max_execution_time = 300
max_input_time = 300
```

## Perguntas frequentes

### O que significa Unable to create directory uploads?

Significa que o WordPress tentou criar ou gravar na pasta wp-content/uploads e o servidor recusou por falta de permissão de escrita. Quase sempre é permissão diferente de 755 ou dono (ownership) errado no diretório.

### Só imagens grandes falham no upload. Por quê?

É o limite de tamanho do servidor. Quando arquivos pequenos sobem e os grandes falham, o upload_max_filesize ou o post_max_size do PHP está menor que a imagem. Eleve esses dois valores no php.ini ou .user.ini.

### Como descubro o tamanho máximo de upload do meu site?

Vá em Mídia > Adicionar nova: o WordPress mostra o "Tamanho máximo de upload" calculado a partir dos limites do PHP. Esse número diz exatamente até quantos MB o servidor aceita por arquivo.

### Permissão 777 resolve o problema de upload?

Resolve o sintoma, mas cria um risco grave de segurança: 777 deixa a pasta gravável por qualquer processo, abrindo caminho para malware. Use 755 com o dono correto do diretório, que é o valor seguro e suficiente.

### Falta de memória PHP pode impedir o upload?

Sim. Depois de receber o arquivo, o WordPress precisa de memória para redimensionar a imagem e gerar miniaturas. Se o WP_MEMORY_LIMIT for baixo, o processamento falha no meio e a imagem não entra na biblioteca.

### O upload parou logo após migrar de hospedagem. O que mudou?

Na migração, o dono e as permissões da pasta uploads costumam mudar. O novo servidor pode usar outro usuário web. Reaplique 755 na pasta, 644 nos arquivos e confirme o ownership com o suporte do host.

**Fonte:** [WordPress.org — Changing File Permissions](https://wordpress.org/documentation/article/changing-file-permissions/)
