Lançado Adianti Framework 7.6!
Clique aqui para saber mais
TFile - BUG URGENTE - AJUDA o Tfile envia para pasta /tmp automaticamente o arquivo com o MESMO nome do arquivo , mesmo antes de salvar o formulário. Mas e se dois usuarios do sistema ( em computadores diferentes , lugar etc) enviar no mesmo instante UM ARQUIVO COM MESMO NOME? O BUG FAZ COM QUE APENAS O ULTIMO ARQUIVO SELECIONADO SEJA SALVO. Era pro Tfile criar NOMES UNICOS NA PAGINAS /TMP , MAS ISSO NÃO ACONTECE! ...
MA
TFile - BUG URGENTE - AJUDA  
o Tfile envia para pasta /tmp automaticamente o arquivo com o MESMO nome do arquivo , mesmo antes de salvar o formulário. Mas e se dois usuarios do sistema ( em computadores diferentes , lugar etc) enviar no mesmo instante UM ARQUIVO COM MESMO NOME? O BUG FAZ COM QUE APENAS O ULTIMO ARQUIVO SELECIONADO SEJA SALVO.

Era pro Tfile criar NOMES UNICOS NA PAGINAS /TMP , MAS ISSO NÃO ACONTECE!

ALGUEM JA LIDOU COM ISSO? OU SEJA TFILE NÃO LIDA COM MAIS DE UM ARQUIVO DE MESMO NOME....

EXEMPLO : se eu enviar dois arquivos PDF com mesmo nome, mas conteudo diferente só um será salvo.

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (5)


MA

Você pode alterar o arquivo
/lib/adianti/service/AdiantiUploaderService.php
e criar seu mecanismo de nomeação
  1. <?php
  2.         $folder 'tmp/';
  3.         $response = array();
  4.         if (isset($_FILES['fileName']))
  5.         {
  6.             $file $_FILES['fileName'];
  7.             
  8.             if( $file['error'] === && $file['size'] > )
  9.             {
  10.                 $path $folder.$file['name'];
  11. ?>

Um trecho do código do service!
PA

/tmp é temporária, logo após o upload, você deve mover o arquivo para o local definitivo usando sua regra de negócio.
FF

Bom dia.
Marcelo ALves.
Eu também estou com esse problema e ainda tenho a situação de que o mesmo formulário recebe vários arquivos separadamente, um TFile para cada. E só posso mover depois que estiverem validados com os dados do banco. Tem que ser assim com a especificação recebida. Então para solucionar parte do teu problema, você pode fazer com que os arquivos de upload sejam feitos para uma subpasta de 'tmp' com o nome do usuario. Assim, não tem problema se usuários diferentes enviarem o mesmo nome de arquivo. Lembrando que o Pablo disse, não é para deixar os arquivos em 'tmp' para sempre.

Segue o código para modificar a classe /lib/adianti/service/AdiantiUploaderService.php

  1. <?php
  2.         // alteração para fazer upload para subpasta com nome do login de usuário
  3.         $folder 'tmp/'.TSession::getValue('login').'/';
  4.         if (!file_exists($folder)){
  5.             mkdir($folder0777true);
  6.         } 
  7. ?>

FF

Correção: A mensagem era para o "Marcos Antônio" eu coloquei Marcelo Alves. Desculpe.
FF

"Marcos Antônio", para resolver o teu problema de vez, no mesmo arquivo "/lib/adianti/service/AdiantiUploaderService.php", altere esta parte
  1. <?php
  2. if( $file['error'] === && $file['size'] > ){
  3.                 $path $folder.$file['name'];
  4. ?>


para isso:
  1. <?php
  2. if( $file['error'] === && $file['size'] > )
  3.             {
  4.                 $dt = new DateTime();
  5.                 $prefixo $dt->format('u').'_';
  6.                 $path $folder.$prefixo.$file['name'];
  7. ?>


depois no mesmo arquivo. Altere esta parte
  1. <?php
  2. if (is_writable($folder))
  3.                 {
  4.                     if( move_uploaded_file$file['tmp_name'], $path ) )
  5.                     {
  6.                         $response['type'] = 'success';
  7.                         $response['fileName'] = $file['name'];
  8. ?>


para essa:

  1. <?php
  2. if (is_writable($folder))
  3.                 {
  4.                     $_FILES['fileName'] = str_replace($file['name'], $prefixo.$file['name'], $_FILES['fileName']);
  5.                     if( move_uploaded_file$file['tmp_name'], $path ) )
  6.                     {
  7.                         $response['type'] = 'success';
  8.                         $response['fileName'] = $prefixo.$file['name'];
  9. ?>