Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

Suporte geral sobre problemas técnicos para OpenCart v3.x.
#80998
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
Editado pela última vez por Emily Padilha em 15 Mar 2019, 10:28, em um total de 1 vez.
#81007
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.
#81014
@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
#81028
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.
#81030
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.
#81051
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
#81052
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.
#81053
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

Gente preciso de ajuda urgente. Na migraç&a[…]

Caro @reds , muito obrigado pela resposta.

PHP 8+ incompatibilidade

Toda tradução para a versão 3[…]

Ola @alex3257 Se você precisa apenas ver […]