Envio de arquivo

Alguém?

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?

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?

Eu criei uma rotina para renomear o arquivo assim que ele sobre e antes de realizar o insert.

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);
}

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.

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

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?

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.

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;

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.
[color=black]O correto para o upload no meu servidor funcionar é APPs como utf8.[/color]

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

Mais uma vez matando a cobra e mostrando pau eim Alexandre!!! Parabéns!

Obrigado Saulo

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

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.