Como renomear vários arquivos de upload se já existir, e passar para a pasta e inserir no banco de dados

Enviada por Weliton Staloch 
Olá pessoal, eu tenho um script para fazer upload de vários arquivos, e eu preciso que ele verifique se os arquivos já existem na minha pasta e se já existirem preciso que sejam renomeados , por exemplo, eu envio arquivo1.jpg, arquivo2.jpg e arquivo3.jpg ... e se arquivo2.jpg já existe na minha pasta ele renomea por $ID-1-arquivo2.jpg ($ID = $ _GET ['id']; .... e se esse nome ($ID-1-arquivo2.jpg já existe então ele renomeia para $ID-2-arquivo2.jpg, inserir um loop sempre acrescentando +1 ao nome caso ele tornar a existir na nova busca, e os outros por $ID-arquivo1.jpg e $ID-arquivo3.jog, e mover para a minha pasta os 3 arquivos .... -> $ID-arquivo1.jpg .... $ID-2-arquivo2.jpg e $ID-arquivo3.jpg, e no final inserir no banco de dados os 3 nomes sem $ID no nome e com o número no nome se o arquivo existe, insira o ID em um campo e nome em outro, ---------- $ insert = ("INSERT INTO fotos (id, nome) VALUES ('$ID', '(se existe inserir número antes do nome ..... 1,2,3 ...) - $nomes_imagens [$ i] ') "); --------- acredito que seria mais interessante primeiro gravar no banco de dados pois ainda não teria renomeado o arquivo com $ID na frente, pois então, procurei vários tópicos referente ao assunto, mas com multiplo upload e de uma maneira que conseguisse encaixar em meu código eu não consegui fazer funcionar, caso poderem colar o código de novo inserindo o que falta ficaria muito bom, todas as ajudas são bem-vindas, Obrigado! Meu código abaixo:
<?php


require 'conexao.php';


$funcao = $_GET['funcao'];
if(isset($_GET['funcao'])) {

if($_GET['funcao'] == adicionar) {






if (
isset( $_FILES['userfile'] )
&& ! empty( $_FILES['userfile'] )
) {
// Configura as variáveis
$imagens = $_FILES['userfile'];
$nomes_imagens = $imagens['name'];
$tipos_imagens = $imagens['type'];
$tmp_imagens = $imagens['tmp_name'];
$erro_imagens = $imagens['error'];
$tamanho_imagens = $imagens['size'];

// Os mime types permitidos
$permitir_tipos = array(
'image/bmp',
'image/x-windows-bmp',
'image/gif',
'image/jpeg',
'image/pjpeg',
'image/png',
);


if ( 4000000 && 4000000 > $tamanho_imagens ) {
exit('Arquivo muito grande.');
}

// Verifica se a variável de erro contém um array
if ( ! is_array( $erro_imagens ) ) {
exit('Nada enviado!');
}

// O laço
for ( $i = 0; $i < count( $erro_imagens ); $i++ ) {

// Verifica se ocorreu algum erro
if ( $erro_imagens[$i] != 0 ) {

// Mostra o erro
echo 'Erro ao enviar imagem ' . $nomes_imagens[$i];

} else {

// Verifica se os mime types estão entre os permitidos
if ( in_array( $tipos_imagens[$i], $permitir_tipos ) ) {

// Verifica se o arquivo foi movido com sucesso (e move)

$ultid = $_GET['id'];
if ( @move_uploaded_file( $tmp_imagens[$i], "images/" . $nomes_imagens[$i] ) ) {
rename("images/$nomes_imagens[$i]","images/$ultid-$nomes_imagens[$i]");

$id5 = $_GET['id'];

$insere = ("INSERT INTO fotos (id, nome) VALUES ('$id5', '$nomes_imagens[$i]')");

$insereBanco = mysql_query($insere);

// Mostra a imagem


echo '<img src="images/' . $nomes_imagens[$i] . '" style="width: 200px; height: auto;">';



} else {

// Mostra o erro no envio
echo 'Erro ao enviar imagem!';
}

} else {

// Mostra o erro de tipos
echo 'Envie apenas imagens.';

} // Fim dos tipos permitidos

} // Fim - Verifica se ocorreu algum erro

} // Fim - O laço
} // Fim - Verifica se algo foi enviado





$id5 = $_GET['id'];

$ident = $_GET['identificacao'];

echo "<script>window.location='../$ident.php?id=$id5&#imagens'</script>";






}
}



?>
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.