Ir para conteúdo

POWERED BY:

Arquivado

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

11closed

[Resolvido] erro file exists

Recommended Posts

ola estou com um problema que acho que ñ dificio de resolver, mais estou em apuros aqui XD...

 

$verificar2 = "SELECT * FROM $tabela1 WHERE nomeurl = '$LocalDesejado'";
       $queryVerificar2 = mysql_query($verificar2);
       while($ver2 = mysql_fetch_array($queryVerificar2)) {
        mkdir ("../".$ver2["nomeurl"]."/$Nomes", 0700 ); mkdir ("../".$ver2["nomeurl"]."/$Nomes/fotos", 0700 );
       }

estou criando uma pasta dentro de outra ja existente e depois outra pasta dentro da ja existente e dentro da que eu acabeide criar, como vcs podem ver no codigo acima.

 

o problema é que esta dano esse erro aq

Warning: mkdir() [function.mkdir]: File exists in D:\wamp\www\.....php on line 401

a linha 401 é essa

mkdir ("../".$ver2["nomeurl"]."/$Nomes", 0700 ); mkdir ("../".$ver2["nomeurl"]."/$Nomes/fotos", 0700 );

 

como evitar que esse erro apareça ???

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode verificar se existe com a função file_exists() e ir mudando de nome até achar um nome válido

exemplo:

$Nomes = "Victor";//associando um nome a variável
//caracteres aceitos para ajudar a achar nome aleatório
$Caracter = 'abcdefghijklmnopqrstuvxywzABCDEFGHIJKLMNOPQRSTUVXYWZ';
$limite = strlen($Caracter) - 1;//limite do tamanho da string anterior   
//loop enquanto existir pasta com o mesmo nome
while (file_exists("pasta1/pasta2/pasta3/$Nomes"){
   //gerando letra aleatoriamente e concatenando ao nome
   $Nomes .= $Caracter{mt_rand(0, $limite)};        
} 
//dessa forma cria-se várias pastas seguindo a hierarquia de uma só vez se elas não existirem
//se existir só entra e cria as subsequentes
mkdir("pasta1/pasta2/pasta3/$Nomes",'0777',true);

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola Victor Cometti

 

mas dessa forma criaria um endereço aleatório neh ....

o endereço que deve ser criado tem que ser exatamente dessa forma que está.

 

OBS: as pasta estão criando certinho, no BD esta tudo certo, o unico problema é que msm que esteja tudo certo o ERRO continua aparecendo no bownser, e aparece repetitivamente

ERRO

Warning: mkdir() [function.mkdir]: File exists in D:\wamp\www\.......php on line 401

Warning: mkdir() [function.mkdir]: File exists in D:\wamp\www\.......php on line 401

Warning: mkdir() [function.mkdir]: File exists in D:\wamp\www\.......php on line 401

Warning: mkdir() [function.mkdir]: File exists in D:\wamp\www\.......php on line 401

Warning: mkdir() [function.mkdir]: File exists in D:\wamp\www\.......php on line 401

Warning: mkdir() [function.mkdir]: File exists in D:\wamp\www\.......php on line 401

Warning: mkdir() [function.mkdir]: File exists in D:\wamp\www\.......php on line 401

Warning: mkdir() [function.mkdir]: File exists in D:\wamp\www\.......php on line 401

Warning: mkdir() [function.mkdir]: File exists in D:\wamp\www\.......php on line 401

Warning: mkdir() [function.mkdir]: File exists in D:\wamp\www\.......php on line 401

Warning: mkdir() [function.mkdir]: File exists in D:\wamp\www\.......php on line 401

Warning: mkdir() [function.mkdir]: File exists in D:\wamp\www\.......php on line 401

Warning: mkdir() [function.mkdir]: File exists in D:\wamp\www\.......php on line 401

Warning: mkdir() [function.mkdir]: File exists in D:\wamp\www\.......php on line 401

Warning: mkdir() [function.mkdir]: File exists in D:\wamp\www\.......php on line 401

 

olha o codigo intero

if($qtsparts == "1"){
     for($i=1;$i<=1;$i++){
      $anunciando = "part $i";
      if ($LocalCadastrado == "NAO") { $fotos = "../$nomeurl/$part[$i]/fotos"; }
      elseif ($LocalCadastrado == "SIM") { 
       $verificar2 = "SELECT * FROM $tabela1 WHERE nomeurl = '$LocalDesejado'";
       $queryVerificar2 = mysql_query($verificar2);
       while($ver2 = mysql_fetch_array($queryVerificar2)) {
        $fotos = "../".$ver2["nomeurl"]."/$part[$i]/fotos"; 
       }
      }
      $Nomes = $_POST[ 'part'.$i ];
      $inseri = "INSERT INTO $tabela3 (indice, anunciando, codigo_id_part, nome_part, Fotos, Datacadastro, liberado) VALUES ('$i', '$anunciando', '$codigoid', '$Nomes', '$Fotos', '$Datacadastro', '$liberado')";
      $query = mysql_query($inseri)or die(mysql_error());
      if ($LocalCadastrado == "NAO") { 
       mkdir ("../$nomeurl/$Nomes", 0700 ); mkdir ("../$nomeurl/$Nomes/fotos", 0700 );
      }
      elseif ($LocalCadastrado == "SIM") { 
       $verificar2 = "SELECT * FROM $tabela1 WHERE nomeurl = '$LocalDesejado'";
       $queryVerificar2 = mysql_query($verificar2);
       while($ver2 = mysql_fetch_array($queryVerificar2)) {
        mkdir ("../".$ver2["nomeurl"]."/$Nomes", 0700 ); mkdir ("../".$ver2["nomeurl"]."/$Nomes/fotos", 0700 );
       }
      }
     }     
    }
não sei oque devo fazer...

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

o q está acontecendo é q você tá tentando criar um arquivo ou pasta com nome já existente, debuga esse código e tenta descobrir onde q está errado

só um detalhe

isso

mkdir ("../".$ver2["nomeurl"]."/$Nomes", 0700 ); mkdir ("../".$ver2["nomeurl"]."/$Nomes/fotos", 0700 )
é o mesmo q isso

mkdir("../{$ver2['nomeurl']}/{$Nomes}/fotos",'0777',true);

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola Victor Cometti

 

olha

"../{$ver2['nomeurl']}/" ---- Essa pasta realmente ja existe

eu so quero que cria essas duas "{$Nomes}/" e "fotos"

essa duas tem que ser criada dentro da "../{$ver2['nomeurl']}/"

 

entendeu ??

 

sera que é por isso que esta dano erro o codigo esta criando essa pasta "../{$ver2['nomeurl']}/" novamente ???

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

você está tentando criar uma pasta que já existe!!

faz uma experiêcia para você ver

//cria pasta
mkdir("../11colsed/teste/fotos",'0777',true);//aki funciona
//tenta criar a mesma pasta
mkdir("../11colsed/teste/fotos",'0777',true);//aki vai dá erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz a experiência Victor Cometti

 

e aconteceu a msm coisa, as pasta foram criadas normalmente.

 

e apareceu esses erros

Warning: mkdir() [function.mkdir]: File exists in D:\wamp\www\.............php on line 405

Warning: mkdir() [function.mkdir]: File exists in D:\wamp\www\..............php on line 403

esses dois erros apareceu 8 vezes...

 

porque sera ?

 

so pra recapitula, a pasta "$ver2['nomeurl']" ja existe eu so quero criar as outras duas a $Nomes e Fotos

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

O script PHP deve ter permissões de Execução e Gravação, dadas ao usuário que iniciou o serviço do servidor web, consequentemente o compilador php.

 

Nota, ambientes windows "domésticos", você só consegue testar definindo as configurações de permissão como 0777 principalmente para o arquivo php que é executado

 

Em ambientes executando IIS, é possível definir estas configurações no servidor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cria diretórios

function createDir($dir, $recursive = TRUE, $mode = 0777) {
		if (!preg_match("/\/$/", $dir))
	 	$dir .= "/";

		if (!is_dir($dir)) {
			$create = mkdir($dir, $mode, $recursive);
			if ($create)
		 	return TRUE;
			else
		 	throw new Exception("O diretório não pôde ser criado!");
		}
}

Funciona 100%

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigado pessoal pelas dicas....

 

fico assim

if( is_dir("../".$ver2['nomeurl']."") ){        	
        if( is_dir("../".$ver2['nomeurl']."/$Nomes") ){                    	
         echo "subdiretorio ja existe";            	
        } else{                   	
         mkdir("../".$ver2['nomeurl']."/$Nomes"); mkdir("../".$ver2['nomeurl']."/$Nomes/fotos");         	
        }                         	
       }else{            	
        echo "O ".$ver2['nomeurl']." nao exixte mais...";                           	
       }   	

deu certinho aq obrigado msm.......

 

t+

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.