ScriptCase Forum

Aplicações => Formulários => Tópico iniciado por: gutoribeiro em Agosto 23, 2012, 02:52:57 pm

Título: Envio de arquivo
Enviado por: gutoribeiro em Agosto 23, 2012, 02:52:57 pm
 Olá amigos,

  Criei um formulário para que o usuário submeta aquivos via upload. Criei um campo do tipo texto, onde o usuário vai dá uma breve descrição do arquivo que estará sendo enviado e um campo arquivo do tipo Documento (Nome de arquivo).

   Localmente, quando estou no scriptcase e executo, funciona normal. Ele envia o arquivo. Quando publico o sistema na web quando vou incluir o registro de envio de arquivo aparece a mensagem:

ERRO
Campos com erro: Arquivo (Falha no Upload)
Arquivo: (Falha no Upload)

Pra onde os arquivos de upload são enviados no sistema publicado?

Acessei via ftp e dentro de /www/meusistema/_lib/files e tava com permissão 775. Alterei pra 777 e nada. Alguém sabe o que pode está acontecendo?

Grato,
Título: Re:Envio de arquivo
Enviado por: Robert Berbert em Agosto 23, 2012, 03:00:24 pm
Você publicou por FTP, ou fez o upload manualmente?
Título: Re:Envio de arquivo
Enviado por: saulobborges em Agosto 23, 2012, 03:07:11 pm
Se for imagem vai pra /_lib/file/img e se for arquivo vai para /_lib/file/doc.
Erro de upload normalmente é permissão ou o seu sistema esta apontando pra uma pasta desconhecida.
Título: Re:Envio de arquivo
Enviado por: gutoribeiro em Agosto 23, 2012, 03:33:49 pm
Você publicou por FTP, ou fez o upload manualmente?

Publiquei via FTP zipado o sistema todo, depois descompactei.

Já alterei a permissão pra 777 e nada. Alguém já fez e publicou algum formulário desse tipo na versão 6 do scriptcase?
Título: Re:Envio de arquivo
Enviado por: saulobborges em Agosto 23, 2012, 04:26:15 pm
Eu uso a V5, você publicou via FTP zipado, mas ao extrair o zip você fez com qual usuário do server? Se o dono for root por exemplo você não vai conseguir.
Título: Re:Envio de arquivo
Enviado por: Robert Berbert em Agosto 23, 2012, 04:36:28 pm
Eu uso a V5, você publicou via FTP zipado, mas ao extrair o zip você fez com qual usuário do server? Se o dono for root por exemplo você não vai conseguir.

É isso mesmo eu já fiz aqui na V6 guto. E funcionou perfeitamente, tenta subir de novo, tenta acessando direto, com outro usuário do ftp.
Título: Re:Envio de arquivo
Enviado por: gutoribeiro em Agosto 26, 2012, 07:35:02 pm
Eu uso a V5, você publicou via FTP zipado, mas ao extrair o zip você fez com qual usuário do server? Se o dono for root por exemplo você não vai conseguir.

É isso mesmo eu já fiz aqui na V6 guto. E funcionou perfeitamente, tenta subir de novo, tenta acessando direto, com outro usuário do ftp.

Poderiam me orientar. O que eu fiz foi assim. Enviei via FTP utilizando o filezilla e como não encontrie ferramenta para descomprimir nele, acessei o painel de gerenciamento do meu servidor de hospedagem (maxhospedagem) e utilizei um recurso que tem lá de descompactar arquivos.

Será que se eu descompactar local e enviar os arquivos individuais vai funcionar?

Editando em tempo: Acabei de enviar os arquivos individualmente e o problema persistiu. Alguém pode me orientar, por favor, sobre como proceder?
Título: Re:Envio de arquivo
Enviado por: gutoribeiro em Agosto 27, 2012, 02:35:44 pm
Eu uso a V5, você publicou via FTP zipado, mas ao extrair o zip você fez com qual usuário do server? Se o dono for root por exemplo você não vai conseguir.

É isso mesmo eu já fiz aqui na V6 guto. E funcionou perfeitamente, tenta subir de novo, tenta acessando direto, com outro usuário do ftp.

Eu criei um outro usuário FTP e enviei por ele, o problema persiste. Alguém mais?
Título: Re:Envio de arquivo
Enviado por: Robert Berbert em Agosto 28, 2012, 09:12:19 am
Faço nem ideia então guto! Teria que ver o problema e o ambiente.
Título: Re:Envio de arquivo
Enviado por: jcesarml em Agosto 28, 2012, 02:36:10 pm
Você deu as permissões do tipo chmod -R, isto é, inclusive nos arquivos e subdiretórios?
Título: Re:Envio de arquivo
Enviado por: Tiago Kirsten em Agosto 28, 2012, 03:12:51 pm
Você não ta fazendo upload de arquivo com espaço ou acentuação no nome?
Título: Re:Envio de arquivo
Enviado por: gutoribeiro em Agosto 31, 2012, 02:31:20 pm
Você não ta fazendo upload de arquivo com espaço ou acentuação no nome?

Já fiz upload de arquivos com acento e sem acento...ambos acontecem o erro. E já dei permissão sim.
Título: Re:Envio de arquivo
Enviado por: Bernhard em Agosto 31, 2012, 05:36:50 pm
Boa tarde,

Como o Sr. está enfrentando problemas ao publicar por FTP, recomendo que o Sr. siga este tutorial (http://downloads.scriptcase.com.br/downloads/v6/manual/pt_br/webhelp/manual_mp/30-Publicando_Aplicacoes/01-tipica.html). No 5º passo crie o ZIP das aplicações, copie-o para o seu servidor (ainda zipado), e extraia-o. Em seguida é só configurar o ambiente de produção (http://downloads.scriptcase.com.br/downloads/v6/manual/pt_br/webhelp/manual_mp/30-Publicando_Aplicacoes/04-ambiente_producao/03-configurando_ambiente.html).

Att,
Bernhard Bernsmann
Título: Re:Envio de arquivo
Enviado por: gutoribeiro em Setembro 01, 2012, 05:14:54 pm
Boa tarde,

Como o Sr. está enfrentando problemas ao publicar por FTP, recomendo que o Sr. siga este tutorial (http://downloads.scriptcase.com.br/downloads/v6/manual/pt_br/webhelp/manual_mp/30-Publicando_Aplicacoes/01-tipica.html). No 5º passo crie o ZIP das aplicações, copie-o para o seu servidor (ainda zipado), e extraia-o. Em seguida é só configurar o ambiente de produção (http://downloads.scriptcase.com.br/downloads/v6/manual/pt_br/webhelp/manual_mp/30-Publicando_Aplicacoes/04-ambiente_producao/03-configurando_ambiente.html).

Att,
Bernhard Bernsmann

Mas eu fiz seguindo esse tutorial, conforme descrevi no tópico, eu enviei o arquivo .zip e descompactei no servidor utilizando um recurso que existe no próprio servidor (maxhospedagem), no painel de controle do site. O sistema está todo funcional, já configurei o ambiente de produção. O problema está somente nesse formulário quando vou submeter  arquivo. Esse formulário serve para que o usuário faça upload de arquivos.

Já abri um chamado lá mas eles não me ajudaram muito. Pediram pra eu tentar publicar em um servidor com Windows Server. Enfim, segue o link de diagnosis de lá pra ver se é algo lá mesmo http://acaicomfarinha.com/sgpsemear/_lib/diagnosis.php

Se puderem me orientar melhor pq eu abro o chamado novamente lá com eles explicando o que eles tem que fazer pra resolver.

Grato pela atenção.
Título: Re:Envio de arquivo
Enviado por: Bernhard em Setembro 02, 2012, 10:07:30 pm
Boa noite,

Ao rodar o mesmo form no ambiente de desenvolvimento, o upload de arquivos funciona?

att,
Bernhard Bernsmann
Título: Re:Envio de arquivo
Enviado por: saulobborges em Setembro 03, 2012, 07:57:34 pm
Amigo eu acho que ta faltando algumas coisas no seu ambiente que não tenho certeza se influenciam diretamente neste seu problema, mas sem resolver estas pendências fica difícil de ajudar.

Habilitar Mbstrings
Instalar ZendGuard
ScriptCase write permission (pode estar aí o problema)
Zend Optimizer Not Installed! (Instalar ZendGuard)
Access denied to write in the tmp directory!

São muitos erros no ambiente, se estiver usando algum painel de controle estilo Cpanel tenta mudar a maneira como o php trabalha, deve estar como FastCGI, muda pra mod_php ou suexec, no Cpanel tem um esquema que configura tudo pra vc no php EasyApache ele configura o zend, php, permissões e ja define o php.ini com essas configurações.
Título: Re:Envio de arquivo
Enviado por: Robert Berbert em Setembro 04, 2012, 10:26:21 am
Cara se este servidor for seu, instale o zendServer, se não for seu peça alguém para resolver as pendências pois o ScriptCase requer certos módulos rodando.
Título: Re:Envio de arquivo
Enviado por: gutoribeiro em Setembro 06, 2012, 02:02:08 pm
Boa noite,

Ao rodar o mesmo form no ambiente de desenvolvimento, o upload de arquivos funciona?

att,
Bernhard Bernsmann

Em localhost está funcionando normalmente. Abri um chamado para a empresa que eu tenho o contrato de hospedagem e eles não souberam me orientar muito não. Pedi para eles acessarem o diagnosis (www.acaicomfarinha.com/sgpsemear/_lib/diagnosis.php) e a única coisa que me falaram que não tem o zend no servidor que era pra eu tentar em um domínio windows, que talvez funcione. O fato que aparecem alguns erros no diagnosis, não sei se tem haver com o meu problema. Alguém sabe como resolver isso?
Título: Re:Envio de arquivo
Enviado por: saulobborges em Setembro 06, 2012, 03:37:47 pm
Cara com certeza os erros que estão aparecendo no diagnosis são a razão de seus problemas, se essa é uma conta de hospedagem comum recomendo buscar um cloud ou dedicado, ou pelo menos um provedor de hospedagem que te ofereça Zend e que você possa configurar seu php.ini se não vai se impossível pra você trabalhar com SC e/ou sistemas desenvolvidos com ele.
Título: Re:Envio de arquivo
Enviado por: gutoribeiro em Setembro 17, 2012, 02:26:05 pm
O que me está causando estranheza é que o sistema está todo funcional, tudo funcionando normalmente. O único problema é o lance de upload de arquivos. Poxa se for pra criar aplicações e não rodar em qualquer servidor fica difícil.

Se fosse algo no diagnosis, acho q o sistema todo estaria com problema e não é o caso.

Alguém tem mais alguma ideia?

Uma imagem do que acontece quando vou submeter o registro no formulário:

(http://dc591.4shared.com/img/LiFvTT_-/s7/0.3855717969500505/erro-upload.png)
Título: Re:Envio de arquivo
Enviado por: gutoribeiro em Setembro 24, 2012, 11:12:05 am
Alguém?
Título: Re:Envio de arquivo
Enviado por: saulobborges em Setembro 24, 2012, 12:21:51 pm
O erro no upload é permissão normalmente, acredito que o SC usa a extensão FTP do php pra envio, por isso eles pedem permissão 777 nas pastas porque não tem como setar usuário e senha pelo SC nesse caso.

Salva seu php.ini e me envia no meu e-mail que dou uma olhadinha, manda o diagnosis também.
Título: Re:Envio de arquivo
Enviado por: gutoribeiro em Outubro 20, 2012, 11:23:02 am
O erro no upload é permissão normalmente, acredito que o SC usa a extensão FTP do php pra envio, por isso eles pedem permissão 777 nas pastas porque não tem como setar usuário e senha pelo SC nesse caso.

Salva seu php.ini e me envia no meu e-mail que dou uma olhadinha, manda o diagnosis também.

Seguinte:
Funcionou dando permissão 777 na pasta "../meu_sistema/_lib/config/file/doc/". Porém, os arquivos não vão para essa pasta, ficam armazenados na pasta "../meu_sistema/_lib/config/tmp/". Na configuração do formulário na opção "Aplicação -> Configuração" tem um campo pra informar o caminho de armazenamento de arquivos e imagens. Inicialmente pensei ser esse o problema também. Coloco lá o caminho do servidor web, não mais o do localhost, e mesmo assim continua acontecendo o problema.

Isso deveria ser mais prático, não entendo pq eu estou tendo esse problema.

Alguém mais tem alguma ideia?
Título: Re:Envio de arquivo
Enviado por: gutoribeiro em Novembro 09, 2012, 03:31:03 pm
O problema inicial foi resolvido. Apaguei o formulário o refiz novamente e funcionou. Entretanto, agora estou enfrentando outros dois problemas:
1º - arquivos que tem nos seus nomes acentos, ç, etc não conseguem ser submetidos;
2º - Após incluir um registro de submissão de arquivo, funciona tudo certinho. Mas se eu exclui o registro...o arquivo continua no servidor.

Alguém sabe como resolver esses problemas?
Título: Re:Envio de arquivo
Enviado por: Luiz Baião em Março 13, 2015, 04:09:11 pm
Eu criei uma rotina para renomear o arquivo assim que ele sobre e antes de realizar o insert.
Título: Re:Envio de arquivo
Enviado por: George Carvalho em Março 13, 2015, 05:47:59 pm
Eu forcei os usuários a renomearem os arquivos.

No onValidate:

$sting = {imagem_frente};
   
$flag = preg_match('/^[a-z A-Z0-9._]+$/', $sting);

if($flag == false){
   $vmensa = "O Nome do arquivo para upload não pode ter acentos e/ou caracteres especiais!";
   sc_error_message($vmensa);
}
Título: Re:Envio de arquivo
Enviado por: George Carvalho em Março 13, 2015, 05:54:02 pm
Sim, porque arquivos com caracteres especiais no nome são criticados.

No onValidade só vai aceitar os caracteres que estão definidos em:  preg_match('a-z A-Z0-9._', $sting);

Vc define que caracteres são permitidos.
Título: Envio de arquivo
Enviado por: manuel1437 em Março 19, 2015, 05:21:42 pm
Caros, estou comecando esta jornada no Scriptcase

1) Pelo que entendi nos posts acima temos que validar o nome do arquivo para nao fazer upload de arquivos com nomes com caracteres especiais. E que usar o Upload NomeArquivo IMG faz upload para uma pasta diferente do Upload NomeArquivo DOC

2) Duvida 1: la no servidor, existe algum limite de quantidada de arquivos numa unica pasta-destino no upload ? Ou a limitacao é so no espaco disponivel no disco mesmo ?

3) Duvida 2: caso o usuario faca upload de um outro arquivo (um xls, por exemplo) que tenha exatamente o mesmo nome de um outro arquivo enviado anteriormente (e que pertence a um outro "cliente"), o Scriptcase sobrepoe o primeiro arquivo (como se fosse uma atualizacao) e bagunca nossa vida ao nao saber se o arquivo pertence a um ou outro cliente, ou o Scriptcase checa isto e envia mensagem de erro para o usuario alterar nome do arquivo e fazer novo upload (ou entao ele mesmo coloca um "_1" no final do arquivo e assim evita esta perigosa sobreposicao ?

4) Duvida 3: consigo enviar para um mesmo registro (ocorrencia) varios anexos ? No BD estarao os 2 ou 3 anexos registrados num mesmo campo txt ?

Abracos
Título: Re:Envio de arquivo
Enviado por: Alexandre Pereira Bühler em Fevereiro 02, 2016, 04:02:10 pm
Bom dia,
Este problema já foi corrigido?
Estou com um cliente de hospedagem que tem o prod -> ScriptCase Prod: 8.1.025  hospedado num servidor debian e php 5.6 com banco firebird 2.5 passando por esta situação.
O arquivo pdf tem 2Mb se retiro os espaços, acentos, traços e etc o upload é feito normal.
Se deixo original com acentos, traços e etc da falha no upload.
Vi que o scriptcase joga o arquivo no tmp noralmente, mas o próprio scriptcase não reconhece o arquivo que está lá para terminar o upload para o banco.
Alguma posição pessoal da netmake?
Título: Re:Envio de arquivo
Enviado por: Alexandre Pereira Bühler em Fevereiro 22, 2016, 11:36:30 am
Bom dia,
Yuri ou Benhard.
Sabem me dizer como está o andamento deste bug?
Já abri chamado no bugs@netmake.com.br ticket #ZCI-517-15287
Para teste acesse: http://www.simaoebuhler.com.br/teste/upload/
Eu tento fazer upload de arquivos com acentos.
Como estes nomes por exemplo:
1) teste com acento á í ã 2016.pdf
2) teste com acentod cópia.pdf
O arquivo até é gravado na pasta tmp com nome: sc_26b55c63_teste com acento ? ? ? 2016.pdf ou sc_b28ecfd6_teste com acentod c?pia.pdf
Mas não faz o upload para o Firebird.
O Form fica como se eu não tivesse selecionado nenhum arquivo.
Sem acento vai normal.
Título: Re:Envio de arquivo
Enviado por: marciowilliam em Fevereiro 22, 2016, 11:00:05 pm
Oi Estava com um problema similar O Rodrigo me deu um Help. A nossa difrenca que estava usando uma aplicacao CONTROLE.

O meu problema era a localizacao do arquivos DOC tem que ser o caminho ABSOLUTO
 

No evento onScriptInit eu coloquei:

$docdir = $this->Ini->root . $this->Ini->path_doc;
$this->Ini->path_doc = $docdir;
Título: Re:Envio de arquivo
Enviado por: Alexandre Pereira Bühler em Fevereiro 26, 2016, 01:26:15 pm
Descobri o que aconteceu.
Podem ver que agora funciona normalmente a aplicação.
http://www.simaoebuhler.com.br/teste/upload

O Gnu/Linux é case sensitive e o collate configurado no shell interfere no nomes dos arquivos que o apache/php é capaz de manipular no disco.
Para que o apache/php possa achar o arquivo no disco a configuração do collate no apache/php e no shell devem ser executados com mesma definição.

Esta configuração do collate no apache+php pode ser feita no próprio arquivo de configuração do apache ou no cabeçalho da página html/php.
Mudar esta configuração no apache pode trazer muitas dificuldades numa hospedagem compartilhada.
Logo, o melhor é mudar no cabeçalho da página php/html.
No scriptcase isto pode ser feito em: aplicação, configuração -> charset

Exemplos de situações para o GNU/Linux:
apache/php (iso-8859-1) + shell (utf8) = problema no upload
apache/php (utf8) + shell (iso-8859-1) = problema no upload
apache/php (iso-8859-1) + shell (iso-8859-1) = funciona o upload
apache/php (utf8) + shell (utf8) = funciona o upload

Minha aplicação no scriptcase estava como ISO-8859-1.
Meu servidor Debian Linux esta com collate pt_BR.utf8.
O upload nunca iria dar certo.
O correto para o upload no meu servidor funcionar é APPs como utf8.

O scritpcase faz o processo de gravar o arquivo na pasta tmp e depois popular na base de dados.
Quando ela gravava na pasta tmp. O arquivo era gravado com caracteres estranhos: sc_4bfc7cb5_teste com acentod c?pia.pdf . Pois era salvo um arquivo com nome iso-8859-1 num sistema de arquivos utf8.
Ao mudar minha aplicação para UTF-8 a aplicação começou a salvar no sistema de arquivos (tmp) o arquivo com caracteres corretos (utf8): sc_77322a0a_teste com acentod cópia.pdf
E  o upload começou a funcionar corretamente.

No Windows creio que esta situação não ocorra.
Logo, fica minha sugestão a netmake de trocar caracteres acentuados na hora de salvar no disco por um conjunto que seja identificável pelo scriptcase e o sistema de arquivos independente do collate configurado no shell.
Isto ajudaria muitas pessoas que usam o scritpcase
Título: Re:Envio de arquivo
Enviado por: saulobborges em Fevereiro 26, 2016, 01:28:15 pm
Mais uma vez matando a cobra e mostrando pau eim Alexandre!!! Parabéns!
Título: Re:Envio de arquivo
Enviado por: Alexandre Pereira Bühler em Fevereiro 26, 2016, 01:55:31 pm
Obrigado Saulo
Título: Re:Envio de arquivo
Enviado por: Jailton em Fevereiro 26, 2016, 02:35:38 pm

Logo, fica minha sugestão a netmake de trocar caracteres acentuados na hora de salvar no disco por um conjunto que seja identificável pelo scriptcase e o sistema de arquivos independente do collate configurado no shell.
Isto ajudaria muitas pessoas que usam o scritpcase

Valeu, mas como isso vai demorar hehe.... até a V20 já vou deixar o server redondo...fora se eles mudarem agora quem tem caracter com acento lá já gravado em utf8 vai ficar tudo bagunçado.


apache/php (utf8) + shell (utf8) = funciona o upload

Faltou o MySQL/MariaDB Default (utf8). ehhe


Título: Re:Envio de arquivo
Enviado por: Alexandre Pereira Bühler em Fevereiro 26, 2016, 05:21:25 pm
Verdade Jailton,
Mas ainda assim haverá pessoas pegas de surpresa como eu.
Minhas bases são todas is-8859-1 e as apps também, mas como eu já estava num processo de migração  para utf8 não será tão ruim.
Eu sabia que cedo ou tarde teria que adotar de vez utf8.