Não consigo fazer upload de imagens no painel de administração do magento, recebendo o erro "A pasta de destino não é gravável ou não existe". Recentemente, todos os arquivos foram movidos de uma hospedagem para outra. Alguma solução para isso?
Não consigo fazer upload de imagens no painel de administração do magento, recebendo o erro "A pasta de destino não é gravável ou não existe". Recentemente, todos os arquivos foram movidos de uma hospedagem para outra. Alguma solução para isso?
Respostas:
No seu projeto, abra o arquivo lib/Varien/File/Uploader.php
e coloque Mage::log()
dentro da save()
função.
public function save($destinationFolder, $newFileName = null)
{
$this->_validateFile();
if ($this->_allowCreateFolders) {
$this->_createDestinationFolder($destinationFolder);
}
if (!is_writable($destinationFolder)) {
// Put a mage::log() and check what is the folder magento is looking for.
Mage::log($destinationFolder);
throw new Exception('Destination folder is not writable or does not exists.');
}
...
}
No registro, você pode descobrir a pasta que o Magento está procurando. E verifique as permissões para essa pasta.
Eu recebo o mesmo erro no Magento 2, e este é o arquivo de onde o erro veio neste caso:
vendor/magento/framework/File/Uploader.php
Na linha, 256
você pode colocar temporariamente esse código para obter a pasta não gravável / inexistente:
if( !is_writable($destinationFolder) ) {
// throw new Exception('Destination folder is not writable or does not exists.');
throw new Exception($destinationFolder);
}
Caso contrário, verifique se essas pastas existem e se são graváveis pelo servidor da web:
pub/media/catalog/
pub/media/catalog/category
pub/media/catalog/product
pub/media/images
pub/media/wysiwyg/
Para o meu, o problema foi resolvido fazendo
pub / mídia / tmp
gravável pelo servidor web
As próximas pastas no diretório "pub / media" também são graváveis
- banners
- catalog
- images
- wysiwyg
Pelo que vale a pena, já tive esse problema algumas vezes e esqueci que geralmente é o próprio arquivo de imagem, não o servidor depois de verificar as permissões e tudo mais. Ele ainda não carregava a imagem porque era muito grande, em dimensões ou em tamanho de arquivo.
As soluções para mim são:
Reduza a escala de uma foto HIGH-REZ antes do upload.
Aumentar magento Resolução máxima ou fazer upload de imagem System > Catalog > Product Image
Verifique se a pasta media / tmp / catalog / product existe "e torne esse diretório gravável pelo servidor da web"
777
, é melhor dizer "e tornar esse diretório gravável pelo seu servidor da web". A idéia é que não há necessidade de conceder acesso de gravação a cada usuário apenas para que seu servidor da Web possa gravar imagens. (Eu não sou o único que downvoted, mas apenas no caso de você estar se perguntando, esta é provavelmente a razão pela qual)
Por favor, verifique a pasta de mídia com 777 permissões. Se você estiver habilitado, o modo de compilação significa também verificar inclui a pasta com 777 permissões.
Depois de dar permissão ao 777 para essas pastas, resolvi o problema para mim.
Pode ser o certificado expirado da administração Plesk (foi o meu caso).
Eu tentei as etapas acima, mas não funcionou. A partir daí, tentei acessar os arquivos através do FileZilla para conceder as permissões de uma só vez a todas as pastas, daí uma mensagem de erro sobre o certificado expirado. Não é o certificado SSL da própria loja, mas a administração do Plesk. Criei um novo certificado autoassinado, apliquei a administração do Plesk e tudo voltou ao normal.
Isso funcionou para mim. Deixo aqui minha contribuição.
Boa sorte
Há um bug no Magento para o upload de arquivos quando o Magento DocumentRoot no vhost está configurado corretamente para
/path/to/magento/pub
Em vez de (obsoleto)
/path/to/magento
O remetente tenta criar arquivos no
/path/to/magento/pub/pub/your_upload_dir
Observe que o pub local vai duas vezes. Eles disseram que o corrigiam no 2.2.0+, mas no 2.2.1 esse problema ainda aparece.