Página 1 de 2

[Resolvido] Problema com Upload de Arquivo

Enviado: 26 Fev 2019, 14:50
por Emily Padilha
Boa tarde,

Inseri em minha loja a área de personalização para que os clientes enviem imagens por ali. Porém a função não está funcionando.
Ao clicar em "Enviar arquivo", aparece que está carregando, não abre nada, e logo em seguida a mensagem de erro informando "Upload obrigatório!".

Alguém consegue me ajudar com este erro?
https://ibb.co/Z1LrhTj

Agradeço. Obrigada.

Att.,
Emily

Re: Problema com Upload de Arquivo

Enviado: 26 Fev 2019, 17:35
por Manoel Vidal
Olá @Emily Padilha.

Qual a URL da sua loja?
Que tipo de arquivo você está tentando enviar?
Qual o tamanho dos arquivos enviados?

Re: Problema com Upload de Arquivo

Enviado: 27 Fev 2019, 09:03
por Emily Padilha
Olá.

www.luzemar.com.br mas estamos em manutenção no momento. E a loja ainda não está divulgada.
Eu iria tentar enviar uma imagem JPG, mas não abre nenhum pop-up para eu selecionar arquivo, entende?
Simplesmente clico em "Enviar arquivo"e em seguida aparece a frase em vermelho abaixo do botão.

Re: Problema com Upload de Arquivo

Enviado: 27 Fev 2019, 12:35
por Manoel Vidal
@Emily Padilha, você chegou a testar com vários tipos de imagem?

Pois uma possibilidade é que o problema esteja com a imagem que você está tentando enviar, outra é que a pasta storage/upload não tenha permissão de escrita e leitura 755, e também pode ser bug no tema que você está utilizando.

Espero ter ajudado. :D

Re: Problema com Upload de Arquivo

Enviado: 27 Fev 2019, 17:04
por Emily Padilha
Olá. Como eu já disse, eu não chego a selecionar NENHUM arquivo, não consigo, pois ao clicar no botão ele não abre nenhuma janela para seleção de arquivo.

Como faço para que a a pasta storage/upload tenha permissão para escrita e leitura, sabe me dizer? Meu tema é o faribe 3.

Re: Problema com Upload de Arquivo

Enviado: 27 Fev 2019, 19:26
por Manoel Vidal
Tire sua loja do modo de manutenção para que possamos visualizar o problema, pois fica difícil sem visualizar, pois testando podemos depurar alguns erros básicos de configuração e/ou do tema que podem está ocasionando o problema, pois nativamente no OpenCart este erro não existe, então algo deve está errado e só testando para sabermos o que é.

Complicou se você não sabe dar permissões em pastas, mas vamos lá.

Acesse sua loja por FTP ou o gerenciador de arquivos da sua hospedagem, localize o arquivo config.php e abra ele, dentro dele localize a linha conforme o exemplo abaixo:
define('DIR_STORAGE', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');

Nesta linha está o caminho para sua pasta storage, e neste caso, como você não sabe adicionar a permissão, envie este caminho para o suporte de sua hospedagem e solicite que eles adicionem a permissão 755 na pasta.

Quanto ao seu tema, ele não é muito conhecido, então o ideal é tirar a loja do modo de manutenção para que possamos testar.

Re: Problema com Upload de Arquivo

Enviado: 04 Mar 2019, 10:06
por Emily Padilha
Bom dia.

Fiz o que você instruiu, e verifiquei que a pasta storage já possuía a permissão 755.

O erro persiste. Caso queira verificar no site o erro: https://luzemar.com.br/open2/porta-retrato-mdf-amor

Att.

Re: Problema com Upload de Arquivo

Enviado: 04 Mar 2019, 13:25
por Manoel Vidal
Com a loja ficou mas fácil testar. =)

O problema é que na página de detalhes do produto, tem um script extra desnecessário para lidar com o upload, que seria o script abaixo:
Código: Selecionar todos
<script type="text/javascript"><!--
    $('button[id^=\'button-custom-field\']').on('click', function() {
        var element = this;

        $('#form-upload').remove();

        $('body').prepend('<form enctype="multipart/form-data" id="form-upload" style="display: none;"><input type="file" name="file" /></form>');

        $('#form-upload input[name=\'file\']').trigger('click');

        if (typeof timer != 'undefined') {
            clearInterval(timer);
        }

        timer = setInterval(function() {
            if ($('#form-upload input[name=\'file\']').val() != '') {
                clearInterval(timer);

                $.ajax({
                    url: 'index.php?route=tool/upload',
                    type: 'post',
                    dataType: 'json',
                    data: new FormData($('#form-upload')[0]),
                    cache: false,
                    contentType: false,
                    processData: false,
                    beforeSend: function() {
                        $(element).button('loading');
                    },
                    complete: function() {
                        $(element).button('reset');
                    },
                    success: function(json) {
                        $(element).parent().find('.text-danger').remove();

                        if (json['error']) {
                            $(node).parent().find('input').after('<div class="text-danger">' + json['error'] + '</div>');
                        }

                        if (json['success']) {
                            alert(json['success']);

                            $(element).parent().find('input').val(json['code']);
                        }
                    },
                    error: function(xhr, ajaxOptions, thrownError) {
                        alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
                    }
                });
            }
        }, 500);
    });
    //--></script>

Não tem como saber se este script foi adicionado por uma modificação ou se ele faz parte do seu tema.

No caso do tema, você pode verificar no arquivo abaixo se o script está nele, e se estiver, você pode removê-lo:
catalog/view/theme/PASTA_DO_SEU_TEMA/template/product/product.twig

Depois, vá no menu Extensões→Modificações e clique no botão "Atualizar" (cor azul claro), para atualizar o cache de modificações, depois vá na página principal do painel de controle da administração da loja, abaixo do botão "Sair", você verá um botão na cor azul com o desenho de uma engrenagem branca dentro dele, clique neste botão, e no popup que vai abrir, clique nos dois botões na cor laranja que estão dentro da coluna "Ação" para atualizar o cache do tema.

Um detalhe importante, é que a modificação para cotação de frete na página de detalhes do produto em sua loja não está funcionando, se estiver precisando de outro:
https://www.opencartbrasil.com.br/exten ... no-produto

Espero ter ajudado. :D

Re: Problema com Upload de Arquivo

Enviado: 04 Mar 2019, 14:45
por Emily Padilha
Boa tarde!

Testei o que você indicou, e deixei comentada a parte do código abaixo:
Código: Selecionar todos
$('#product-product button[id^=\'button-upload\']').on('click', function() {
	var node = this;

	$('#product-product #form-upload').remove();

	$('body').prepend('<form enctype="multipart/form-data" id="form-upload" style="display: none;"><input type="file" name="file" /></form>');

	$('#product-product #form-upload input[name=\'file\']').trigger('click');

	if (typeof timer != 'undefined') {
    	clearInterval(timer);
	}
Porém o problema ainda não foi solucionado. Veja: https://luzemar.com.br/open2/porta-retrato-mdf-amor

Sobre o simulador de frete: estamos tendo problemas com ele mesmo. Inclusive, quando vou editar a extensão dele e clico em salvar, aparece um erro e depois buga várias coisas (não consigo mais fazer modificações, no site não aparece o menu nem algumas extensões, etc.). Consigo solucionar o problema, mas toda vez que tento alterar a posição do simulador de frete, ao editá-lo, acontece o mesmo.

Enfim, mas a principio precisamos corrigir esse problema do upload, pois será muito importante em nossa loja.

Obrigada. Att.

Re: Problema com Upload de Arquivo

Enviado: 04 Mar 2019, 20:39
por Manoel Vidal
Você comentou o código errado. :|

Note que o código que eu citei é diferente do código que você comentou, então comente o código que citei, e desative o módulo de cotação de frete que está dando problema na página de detalhes do produto.

Espero ter ajudado. :D