Como renomear multi upload if exists + mysql


(Weliton) #1

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>";






}
}		
	


?>