Alterar nome de imagem upload TFile Gostaria de alterar o nome de imagens que são carregadas pelo Tfile, já tentei tudo e não consegui, se alguém tiver uma solução fácil sem fazer alteração no Objeto do FrameWork....
SC
Alterar nome de imagem upload TFile  
Gostaria de alterar o nome de imagens que são carregadas pelo Tfile, já tentei tudo e não consegui, se alguém tiver uma solução fácil sem fazer alteração no Objeto do FrameWork.

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (9)


NR

Mostre o que você está tentando fazer que fica mais fácil de ajudar
SC

Nataniel obrigado pelo interesse na ajuda, eu gostaria de fazer upload de uma imagem e independente do nome dela antes do upload, apos o upload ela teria sempre o mesmo nome Ex.: logo2.png
NR

Você pode controlar isso na função onSave. Pode usar a função rename ou copy para renomear o arquivo temporário do upload para o nome que quiser.

Se ainda tiver dúvidas poste aqui a onSave
FD

Faz dessa forma:

class Arquivo extends TPage{
private $form;

function __construct(){
parent::__construct();
// criando form
$this->form = new TQuickForm('form_arq');
$this->form->class = 'tform';
$this->form->setFormTitle('Salvar Arquivo de Imagem');

$arq = new TFile('arq');

$this->form->addQuickFields('',[ $arq ] );

$arq_action = new TAction(array($this, 'onArq'));
$arq->setCompleteAction($arq_action);

$vbox = new TVBox;
$vbox->add($this->form);
$vbox->style = 'width:100%';

parent::add($vbox);

}//fim do construtor

public static function onArq($param){
var_dump($param);
$nome = $param['arq'];
echo "<pre>{$nome}</pre>";
}

}
IS

Nataniel Rabaioli, justamente nesta function que tentei alterar nome, tem que usar urldecode e depois codificar novamente

public function onSave( $param )
{
try
{
TTransaction::open('marca');

$this->form->validate();
$data = $this->form->getData();
$object = new Configuracao('images');
$object->fromArray( (array) $data);
$object->store(); // save the object
$this->saveFile($object, $data, 'file', 'app/');
$this->form->setData($data);
TTransaction::close();

new TMessage('info', TAdiantiCoreTranslator::translate('Record saved'));
}
catch (Exception $e)
{
new TMessage('error', $e->getMessage());
$this->form->setData( $this->form->getData() );
TTransaction::rollback();
}
}
IS

Nataniel Rabaioli, justamente nesta function que tentei alterar nome, tem que usar urldecode e depois codificar novamente

public function onSave( $param )
{
try
{
TTransaction::open('marca');

$this->form->validate();
$data = $this->form->getData();
$object = new Configuracao('images');
$object->fromArray( (array) $data);
$object->store(); // save the object
$this->saveFile($object, $data, 'file', 'app/');
$this->form->setData($data);
TTransaction::close();

new TMessage('info', TAdiantiCoreTranslator::translate('Record saved'));
}
catch (Exception $e)
{
new TMessage('error', $e->getMessage());
$this->form->setData( $this->form->getData() );
TTransaction::rollback();
}
}
IS

Francisco Dorgam você trocou o nome na construção do form?
IS

Esta função salva as extensões (gif,png, jpeg,jpg), converte sempre para mesmo nome e transforma em ".png". Eu trabalhei no sentido de criar uma logo para empresa, se alguém tiver alguma ideia, esta funcionando, mas boas ideias são sempre bem vindas.

public function onSave( $param )
{
try
{
TTransaction::open('marca');
$this->form->validate();
$data = $this->form->getData();

$upfile = json_decode(urldecode($data->file));
$path_parts = pathinfo($upfile->fileName);

if (($path_parts['filename'].'.'.$path_parts['extension']) != ('logo2.'.$path_parts['extension']) )
{
rename("tmp/".$path_parts['filename'].'.'.$path_parts['extension'], "app/images/logo2.".$path_parts['extension']);
$data->file = "app/images/logo2.".$path_parts['extension'];
}

$image = "app/images/logo2.".$path_parts['extension'];


switch (exif_imagetype($image)) {
case IMAGETYPE_PNG :
$img = imagecreatefrompng($image);
break;
case IMAGETYPE_GIF :
$img = imagecreatefromgif($image);
break;
case IMAGETYPE_JPEG :
$img = imagecreatefromjpeg($image);
break;
default :
throw new InvalidArgumentException('Invalid image type');
}
$filename = "app/images/logo2.png";
imagepng($img, $filename);

$object = new Configuracao('images');
$object->fromArray( (array) $data);
$object->store();
$this->saveFile($object, $data, 'file', 'app/');
$this->form->setData($data);
TTransaction::close();

new TMessage('info', TAdiantiCoreTranslator::translate('Record saved'));

}
catch (Exception $e)
{
new TMessage('error', $e->getMessage());
$this->form->setData( $this->form->getData() );
TTransaction::rollback();
}
}
FF

Bom dia Saúde Catalão.
Tive os mesmos problemas mas não poderia deixar para tratar no onSave do formulário etc... minha solução está aqui:

https://www.adianti.com.br/forum/pt/view_5004?upload-com-mesmo-nome

Não gosto de alterar diretamente as classes do framework... mas a necessidade e a urgência falam mais alto.... hahaha abraço