perera 0 Denunciar post Postado Janeiro 10, 2011 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
gugoan 0 Denunciar post Postado Janeiro 10, 2011 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
Beraldo 864 Denunciar post Postado Janeiro 10, 2011 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
perera 0 Denunciar post Postado Janeiro 11, 2011 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
CrY 1 Denunciar post Postado Janeiro 11, 2011 ué só adionar str_replace('//','/',$targetPath) . $nome_foto_md5 . ".jpg"; tenta isso xD Compartilhar este post Link para o post Compartilhar em outros sites
perera 0 Denunciar post Postado Janeiro 11, 2011 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
Beraldo 864 Denunciar post Postado Janeiro 11, 2011 http://www.php.net/pathinfo pathinfo retorna um array, sendo que um dos íbdices tem somente a extensão do arquivo Compartilhar este post Link para o post Compartilhar em outros sites
perera 0 Denunciar post Postado Janeiro 11, 2011 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
CrY 1 Denunciar post Postado Janeiro 11, 2011 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
Beraldo 864 Denunciar post Postado Janeiro 11, 2011 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
michelmfreitas 1 Denunciar post Postado Fevereiro 1, 2011 Perera, me dê uma explicação: Como você fez para pegar o ID via GET no uploadify.php ? Compartilhar este post Link para o post Compartilhar em outros sites
perera 0 Denunciar post Postado Fevereiro 1, 2011 É 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
michelmfreitas 1 Denunciar post Postado Fevereiro 2, 2011 Valeu chefe, ajudou muito! Compartilhar este post Link para o post Compartilhar em outros sites