O upload da imagem Magento não funciona, mesmo após conceder permissões a todas as pastas 777

9

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?

user3164549
fonte
Que tipo de pacote de hospedagem você possui? Se incluir suporte, pode valer a pena perguntar sobre as permissões atuais.
David Manners
Temos dois sites hospedados no mesmo servidor e temos todas as permissões para carregar um arquivo e mesmo que os arquivos não são upload
user3164549

Respostas:

16

No seu projeto, abra o arquivo lib/Varien/File/Uploader.phpe 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.

Sukeshini
fonte
5
Muito obrigado i forgetted para dar permissão de arquivo de mídia / tmp / categoria / produto, e depois de dar a permissão de arquivo para essa pasta o problema foi resolvido
user3164549
2
Fico feliz em ouvir o seu problema foi resolvido. Se isso foi útil para resolver o problema, marque-o como a resposta.
Sukeshini
5

Magento 2

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, 256você 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/
Andrea
fonte
3

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
Eliut Islas
fonte
3

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

  • aumente o limite de tamanho de arquivo PHP do seu servidor com .htaccess ou config, consulte: /programming/6292687/upload-6-mb-image-in-magento
asherrard
fonte
2

Verifique se a pasta media / tmp / catalog / product existe "e torne esse diretório gravável pelo servidor da web"

Altravista
fonte
Em vez de definir a permissão 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)
Dan
sim, claro;)
Altravista
2

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.

Pasupathi Thangavel
fonte
0

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

Cledson Silva
fonte
0

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.

A.Maksymiuk
fonte