Pessoal, criei a página de upload e estou apemas com um problema, é possível setar o nome e o diretório do arquivo no repositório temporário onde será salvo? Verifiquei que a função monta automáticamente estas variáveis, mas não vi como alterá-las...
Desde já agradeço.
Autor: miguel Patrocinio
33 comentários
2) fileName = nome real do arquivo. Ex: meu_documento.pdf
3) type = é extensão do arquivo. Ex: pdf
4) size = tamanho do arquivo em bytes. Ex: 477418 Com estas informações, em mãos, você terá que chamar uma ação ( action ) para mover o arquivo do diretório base/tmp para o diretório desejado, e para isso o melhor caminho é fazer uma requisição ajax, passando no mínimo 02 parametros, que são: tempName e fileName para que você possa mover ou copir o arquivo. // Exemplo da criação do campo arquivo no FormDin:
$frm->addFileField('anexo_async','Anexo Async:',true,'pdf,gif,txt,jpg,doc,xls,odt','4M',40,true,null,'callBackAnexar'); //Exemplo da função de callback:
function callBackAnexar(tempName,fileName,type,size)
{
if( String( fileName) !== '' && parseInt( size ) > 0 )
{
// mover o arquivo para o diretório desejado da aplicação
fwAjaxRequest({
action:'moverArquivo'
,data:{"tempName":tempName,"fileName":fileName}
,dataType:'text'
,async:false // para exibir a mensagem copiando...
,msgLoading:'Copiando arquivo '+fileName
,callback:function(resultado)
{
//alert( resultado );
fwAlert( resultado );
fwClearFileAsync('anexo_async');// limpar o campo no formulário.
}
});
}
} // Exemplo da ação moverArquivo em PHP utilizando switch/case, o correto é colocar no diretório action do modulo e utilizar a função $frm->processAction() case 'moverArquivo': // remover o utf8 da chamada ajax para preservar os acentos e caracteres especiais caso tenha
$_POST['fileName'] = utf8_decode($_POST['fileName']); //if( copy( $_POST['tempName'],'arquivos/'.$_POST['fileName']) ) // para manter o temporário
if( rename( $_POST['tempName'],'arquivos/'.$_POST['fileName']) ) // para apagar o temporário
{
// estilizar o retorno para a utilizar a função fwAlert()
die('<span style="color:green;font-size:14px;font-weight:bold;">Arquivo '.$_POST['fileName'].' copiado com SUCESSO!</span>');
}
die('<span style="color:red;font-size:14px;font-weight:bold;">ERRO ao mover o arquivo para o diretório destino!</span>');
break; Abraço.