Ir para conteúdo
Fórum Script Brasil
  • 0

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


Weliton Staloch

Pergunta

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






}
}		
	


?>					

 

Editado por Weliton Staloch
Ajustei a explicação e colei o código em português
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...