Multi-upload como renomear os arquivos enviados e limitar o tamanho?

Existe um problema sério quando estamos usando o upload de imagens do SC que se for enviado um arquivo com o mesmo nome ele vai simplesmente sobrepor o anterior sem sequer perguntar se deveria/poderia.

O problema se agrava mais ainda quando fazemos o teste usando qualquer dispositivo IOS que por padrão o ipad e o iphone por exemplo via navegador eles colocam as imagens que vão ser enviadas com o nome image.jpg sendo assim se voce selecionar 10 arquivos diferentes ele vai subir os 10 com o nome image.jpg e ai ja viu aquela salada

Ja vi tópico aqui no fórum falando como fazer uma gambiarra de código via php direto ja que o SC não da essa opção de configuração para que voce valide o tamanho do arquivo e renomei o mesmo na mão, porém pra fazer isso com o multi-upload ainda é desconhecido pois não se sabe quais as variaveis para serem trabalhadas, com isso solicito por gentileza que nos informe como podemos fazer pra implementar isso, seja de qual forma for utilizando o multi-upload com a funcionalidade de limitar o tamanho do arquivo e de renomear os arquivos assim que são enviados para evitar que 2 arquivos com o mesmo nome deem conflito entre si

Boa noite,

Reportei este problema para nossa equipe de bugs.

att,
Bernhard Bernsmann

Olá Bernhard, conseguiram alguma informação a respeito? algum feedback? faz tempo que luto aqui no fórum sobre esse problema pra evitar ter que fazer uso do envio individual + código de renomear/limitar tamanho aproveitando essa nova funcionalidade…

Gustavo,

Fui informado para esses casos é necessário utilizar a opção de subdiretório a fim de organizar os arquivos / imagens.

Estou encaminhando para nossa equipe como sugestão a opção de renomear esses arquivos.

att,
Bernhard Bernsmann

Bernhard,

Somente o fato de se criar um subdiretório não resolve o problema, pois os arquivos são sobrescritos também dentro do subdiretório.

O ideal seria que, automaticamente, o SC renomeasse para um nome único cada arquivo no momento do upload.

Obrigado por encaminhar.

Isso será bastante útil.

Wennys

Finalmente alguém sensato para me ajudar na solicitação dessas necessidades que não só devem ser implementadas no multi-upload como no upload normal que contém essas mesmas necessidades, agradeço ao Wennys Carlos pelo apoio juntamente ao Bernhard.

Tanto a opção de voce optar pela geração automática de um outro nome (ou pelo menos uma forma de fazer isso via código no multi-upload pq ninguem sabe como ainda) como também a questão do redimensionamento de imagens/limitação do tamanho máximo de envio são funcionalidades que estão impedindo o bom uso dos módulos que se prestam a isso no SC pela sua incapacidade de funcionar corretamente.

fico novamente no aguardo de uma posição a respeito ja que a muito tempo isso tem sido necessário e agora no multi-upload virou um bug por não ter sequer forma de fazer via gambiarra de código.

Wennys, Vou levantar estes pontos com nossa equipe.

Gustavo, Obrigado mais uma vez pelo seu feedback.

att,
Bernhard Bernsmann

Conseguiu algo Bernhard?

Esse bug é persistente faz tempo e acontece também no envio individual de arquivos/imagens afinal de contas que sistema é esse que envia arquivos/imagens e um substitui o outro em todos os casos?

precisamos de uma solução pra isso evitando a boa e velha gambiarra de criar um evento pós-upload manualmente que renomei o arquivo, verifique seu tamanho e depois faça um update no banco com o seu novo nome isso é ridículo sinceramente já deu pra resolver faz tempo…

Sinceramente eu tenho vergonha de implementar um módulo que faça isso e continuo no aguardo de pelo menos uma posição da equipe de desenvolvimento com uma solução para isso.

Sr. Bernhard Bernsmann
Já tem alguma resposta sobre esse assunto?

Eu só não entendi porque esse tópico esta fórum de bugs ainda, já deveria ter sido trancado ou ido pra área de sugestões!

Bom dia pessoal.

Quando ao proposto de ter arquivos com nomes únicos, verifiquei que isto ocorre na pasta temp: “wwwroot\scriptcase\tmp”

Estou com outra dúvida/Sugestão.

Estou precisando estabelecer meu próprio meio para renomear o arquivo, pois como indicado, na pasta temp ele cria com o padrão:
" … . md5(mt_rand(1, 1000) . microtime());" O que fica difícil recuperar o arquivo.

Como solução estou utilizando a função RENAME do PHP
rename(“original.txt”, “alterado.txt”);

como indicado em : http://php.net/manual/pt_BR/function.rename.php

Já tentei nos eventos: onAfterInsert, onValidateSuccess
Mas ocorre a mensagem: O arquivo já está sendo usado por outro processo.

Creio que está tentando renomear antes que o arquivo possa ser enviado (durante o processo de upload).

Teria alguma forma de mudar o nome do arquivo antes de gravar no servidor, assim já indo com o nome do meu padrão ou renomear após este ter sido efetivamente concluído o upload?

Dese já meus agradecimentos a todos.

Consegui resolver o problema: “O arquivo já está sendo usado por outro processo.”

Usando o comando “sleep(4);”
Assim entre o evento onAfterUpdate eu forço esperar 4 segundos para renomear o arquivo efetivamente.

Considerando 4 segundos entre o tempo de inserir no banco de dados e realizar o upload do arquivo transferindo para outra pasta que eu determinei.

Entretanto estou agora com outro problema.

O nome do arquivo enviado para o banco de dados é diferente do arquivo que está gravado na pasta, tanto porque cortou o nome do arquivo, quando por problema de caracteres especiais no nome do arquivo.

Já tentei renomear o arquivo tirando os caracteres especiais como descrito no forum

http://www.scriptcase.com.br/forum/index.php?topic=9242.0

Re:[RESOLVIDO]Mudar nome do arquivo antes do upload
« Responder #3 Online: Setembro 02, 2014, 05:25:27 am »

Mas não resolveu, alguém tem alguma sugestão?

Consegui a solução
http://www.scriptcase.com.br/forum/index.php/topic,10819

Consegui resolver usando os processos descritos neste site:

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

Estando com projeto já atrasado por causa desta funcionalidade, não posso me dar o luxo de ficar esperando o pessoal da Netmake.

A empresa está analisando outras ferramentas para serem utilizadas a partir do próximo semestre…

Rodrigo, o link não está abrindo…

Obrigado a todos…

Boa noite amigos.

  No meu sistema utilizo na informação de subdiretorio combinando o ID do registro
  EX: Imagensclientes/Imagem_{cliente_id}/   ...Assim no cadastro de cliente Id=1 que tem a foto do mesmo será 
         Imagensclientes/Imagem_1/foto.jpg
        Imagensclientes/Imagem_2/foto.jpg

        seguindo a idéia, anexando uma grade de documento no cadastro de clientes:
       Imagensclientesanexos/Imagem_2/Anexo_1/foto.jpg .. onde Imagem_2 (2 id do cliente) e Anexo_1(1 id ou sequencia do documento)

Espero ter ajudado !

Abraços !