Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

perera

[Resolvido] Como alterar nome do arquivo no UPLOAD?

Recommended Posts

Olá,

Estou usando o Uploadfly (http://www.uploadify.com/).

 

Alterei a parte no php para ele registra o nome das imagens no banco da dados relacionando com o id da viagem.

Pega o ID da viagem (site de turismo) e coloca na tabela viagem_foto que depois fará relão com a tabela viagem.

 

Minha duvida é, como posso alterar o nome desta imagem para que por ex:

imagem.jpg

 

Se transforme em:

nomeoriginal_idviagem_datahoraminutossegundos.jpg

 

Que ai depois converteria em md5.

 

Eu já li outros tutoriais mas está meio confuso para mim entender pois ainda sou iniciante.

Se alguém puder me explicar em cima do meu código agredeço muito, ai vai:

 

<?php
//Conexão com o banco de dados
require_once("conectar.inc.php");

//Pega o ID da viagem (site de turismo)
$id = $_GET["id"];


if (!empty($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];			
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
$targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];


//A partir daqui eu modifiquei para inserir o nome da imagem no banco de dados
$nome_foto = $_FILES["Filedata"]["name"];	
$SQL_FOTO = "INSERT INTO viagem_foto VALUES (null, '$nome_foto', '$id')";
$CMD = mysql_query($SQL_FOTO);
$NUM_ROWS = mysql_affected_rows($CONN);
;




	move_uploaded_file($tempFile,$targetFile);
	echo str_replace($_SERVER['DOCUMENT_ROOT'],'',$targetFile);

}
?>

 

Agradeço a Atenção

Renan.

Compartilhar este post


Link para o post
Compartilhar em outros sites

nomeoriginal_idviagem_datahoraminutossegundos.jpg

 

Bom você ja tem o idviagem:

$id = $_GET["id"];

 

datahoraminutossegundos:

$data = date("d/m/y h:i:s")

 

nomeoriginal você pega do proprio nome da imagem, dpois você concatena tudo:

 

$completo = $nome."_".$id."_".$data;

Compartilhar este post


Link para o post
Compartilhar em outros sites

só uma observação: evite usar caracteres como dois-pontos, espaço e outros em nomes de arquivos. Use apenas letras, números, hifen (-) e sublinhado (_). Isso evitará possívels dores de cabeças futuras

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pelas respostas, Consegui renomear o arquivo do jeito que queria e depois converti para md5 para ficar bonito.

Só que agora estou com um novo problema, eu renomeio o arquivo e ele perde a extensão.

 

Como posso manter a extensão do arquivo à ser enviado?

Ai vai meu código.

 

<?php
//Require
require_once("conectar.inc.php");


//Upload
if (!empty($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];			
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';

//Pega as Variaveis	
   $nome_foto = $_FILES['Filedata']['name'];
$data = date("d_m_y_h_i_s");
$id = $_GET["id"];

//Junta todas as variaveis	
$completo = $nome_foto."_".$id."_".$data;

//Converte para MD5
$nome_foto_md5 = md5($completo);

//Pega o nome do arquivo com ele já modificado
$targetFile =  str_replace('//','/',$targetPath) . $nome_foto_md5;

//Irá incluir o nome do arquivo na tabela do banco de dados, com id da viagem.	
$SQL_FOTO = "INSERT INTO alfatour_viagem_foto VALUES (null, '$nome_foto_md5', '$id')";
$CMD = mysql_query($SQL_FOTO);
$NUM_ROWS = mysql_affected_rows($CONN);

//Irá mover o upload com o nome novo
move_uploaded_file($tempFile,$targetFile);
echo str_replace($_SERVER['DOCUMENT_ROOT'],'',$targetFile);

//Fechando IF
}
?>

 

Obrigado novamente pelas respostas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu certo em partes mas tipo,

Nesse caso to usando para imagens - .gif > .jpg, png > jpg dependendo da imagem isso não fica legal.

Outro problema seria se eu usasse o mesmo script para outra coisa, no caso arquivos de video por exemplo isso é inviável de fazer.

 

O que eu queria era um jeito de pegar a extensão original e recolocar depois. É possível?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

Consegui!

 

Obrigado à todos pela ajuda.

 

Ai vai o código para quem precisar um dia:

 

<?php
//Require
require_once("conectar.inc.php");


//Upload
if (!empty($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];			
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';

//Pega as Variaveis	
   $nome_foto = $_FILES['Filedata']['name'];
$data = date("d_m_y_h_i_s");
$id = $_GET["id"];

//Junta todas as variaveis	
   $completo = $nome_foto."_".$id."_".$data;

//Pega a Extensão Original	
   $path_parts = pathinfo($nome_foto);

   //echo $path_parts['dirname'], "\n";
   //echo $path_parts['basename'], "\n";
   //echo $path_parts['extension'], "\n";
   //echo $path_parts['filename'], "\n"; 
//Desde o PHP 5.2.0

//Converte para MD5
$nome_foto_md5 = md5($completo);

//Agora vai juntar nome em md5 com a extensão
   $nome_final = $nome_foto_md5.".".$path_parts['extension'];

//Pega o nome do arquivo com ele já modificado
$targetFile =  str_replace('//','/',$targetPath) . $nome_final;

//Irá incluir o nome do arquivo na tabela do banco de dados, com id da viagem.	
$SQL_FOTO = "INSERT INTO viagem_foto VALUES (null, '$nome_final', '$id')";
$CMD = mysql_query($SQL_FOTO);
$NUM_ROWS = mysql_affected_rows($CONN);

//Irá mover o upload com o nome novo
move_uploaded_file($tempFile,$targetFile);
echo str_replace($_SERVER['DOCUMENT_ROOT'],'',$targetFile);

//Fechando IF
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

RESOLVIDO Xd EU ia te dizer agora pra pegar pelo post xD $_FILES['arquivo']['type'] armazenar em uma variavel e chamar tipo

$ext = $_FILES['arquivo']['type'];

$nome_foto_md5.".".$ext;

 

mais se ja resolveu beleza!

Compartilhar este post


Link para o post
Compartilhar em outros sites

RESOLVIDO Xd EU ia te dizer agora pra pegar pelo post xD $_FILES['arquivo']['type'] armazenar em uma variavel e chamar tipo

$ext = $_FILES['arquivo']['type'];

$nome_foto_md5.".".$ext;

 

mais se ja resolveu beleza!

o índice 'type' de $_FILES tem o mime=type do arquivo, não a extensão dele. São coisas diferentes

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só colocar no javascript, sendo que a pagina onde ele tiver já tem que receber o id pra dar certo.

 

<?php
$id = $_GET["id"];
?>
<html>
<head>
<script type="text/javascript">
$(document).ready(function() {
       $('#file_upload').uploadify({
         'uploader'  : 'upload/uploadify.swf',
         'script'    : 'upload/uploadify.php?id=<?php echo"$id"; ?>',
         'cancelImg' : 'upload/cancel.png',
         'folder'    : 'uploads/',
	  'fileDesc': 'Image Files', 
	  'fileExt': '*.jpg;*.jpeg;*.gif;*.png',
	  'buttontext': 'Enviar Arquivos',
	  'multi': true,
	  'auto': true
         });  
     });
</script>
</head>
<body>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.