Chaparro 0 Denunciar post Postado Agosto 9, 2011 Pessoal, beleza? Estou fazendo uma página na qual eu preciso que seja gravada um arquivo dentro de uma pasta, mas está aparecendo os erros Warning: mkdir() [function.mkdir]: File exists in /home/business/public_html/admin/noticias/cadastrar.php on line 188 Warning: mkdir() [function.mkdir]: File exists in /home/business/public_html/admin/noticias/cadastrar.php on line 193 Warning: mkdir() [function.mkdir]: File exists in /home/business/public_html/admin/noticias/cadastrar.php on line 198 As pastas estão sendo criadas normalmente, mas o erro aparece ao escrever o arquivo dentro da pasta. Segue abaixo o código if($rs = mysql_query($sql, $conexao)) { //echo "sql:".$rs; $sql_gerador = " SELECT noticia_id, topico_id, noticia_titulo, noticia_apoio, noticia_texto ,noticia_data, noticia_data_publicacao, noticia_status FROM noticias WHERE noticia_id = ".$notID; //echo "sql:".$sql_gerador; $rs_gerador = mysql_query($sql_gerador, $conexao); $campo = mysql_fetch_array($rs_gerador, MYSQL_ASSOC); $noticia_id= $campo['noticia_id']; $topico_id= $campo['topico_id']; $noticia_titulo= $campo['noticia_titulo']; $noticia_apoio= $campo['noticia_apoio']; $noticia_texto= $campo['noticia_texto']; $noticia_texto= str_replace(""","'", $noticia_texto); $noticia_data= $campo['noticia_data']; echo "DATA:".$noticia_data; echo "<br><br>"; $noticia_data_publicacao= $campo['noticia_data_publicacao']; $noticia_status= $campo['noticia_status']; if($layout == "1") { include ("templates/layout1.php"); } /* --------------------------------------------------------------------------------------------------- */ $vet_data = explode("-",$noticia_data); $data_ano =$vet_data[0]; $data_mes =$vet_data[1]; $data_dia =$vet_data[2]; $vet_data_dia = explode(" ",$data_dia); $data_dia =$vet_data_dia[0]; $nome_noticia = geraUrlLimpa($noticia_id); $caminho_noticia = $data_ano."\\".$data_mes."\\".$data_dia; $filename = $_SERVER['DOCUMENT_ROOT']."\\noticias\\".$caminho_noticia; if(!file_exists($_SERVER['DOCUMENT_ROOT']."\\noticias\\".$data_ano)) { mkdir($_SERVER['DOCUMENT_ROOT']."/noticias/".$data_ano, 0755,true); } if(!file_exists($_SERVER['DOCUMENT_ROOT']."\\noticias\\".$data_ano."\\".$data_mes)) { mkdir($_SERVER['DOCUMENT_ROOT']."/noticias/".$data_ano."/".$data_mes, 0755,true); } if(!file_exists($_SERVER['DOCUMENT_ROOT']."\\noticias\\".$data_ano."\\".$data_mes."\\".$data_dia)) { mkdir($_SERVER['DOCUMENT_ROOT']."/noticias/".$data_ano."/".$data_mes."/".$data_dia, 0755,true); } $filename = $_SERVER['DOCUMENT_ROOT']."\\noticias\\".$caminho_noticia."\\".$nome_noticia.".php"; if (!$handle = fopen($filename, 'w+')) { print "Erro abrindo arquivo ($filename)"; exit; } if (!fwrite($handle, $fotoRot)) { echo "Fotorot:".$fotoRot; print "Erro escrevendo no arquivo ($filename)"; exit; } fclose($handle); } Alguem pode me ajudar? Perdi já muito tempo com isso... As permissões também estão corretas... Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Agosto 9, 2011 sua verificação não está boa. cria todas as pastas ao mesmo tempo, não precisa criar uma a uma adapte $data = date("Y/m/d");//pega a data atual $pasta = sprintf("%s/noticias/%s ", $_SERVER['DOCUMENT_ROOT'],$data); //monta o endereço if(!file_exists($pasta)){//verifica existência mkdir($pasta, 0755,true);//cria pasta } Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Agosto 9, 2011 ja existe esses arquivos criados? excluia eles primeiro se der certo, o seu codigo não esta sobreescrevendo o arquivo. Compartilhar este post Link para o post Compartilhar em outros sites
Chaparro 0 Denunciar post Postado Agosto 9, 2011 Victor Cometti Na verdade ele está criando 3 pastas diferentes... Ele cria na seguinte estrutura 2011 - 08 - 09 por exemplo... Então são 3 pastas... Da maneira que você me enviou vai dar na mesma, vou ter que criar tres opções para criar as mesmas ou não? shini Quando eu vou cadastrar uma noticia, ela cria a estrutura das pastas perfeitamente, mas não consegue inserir o arquivo dentro da pasta... Quando eu vou inserir uma nova noticia ele aparece o erro sobre as verificações das pastas existentes... Ou seja, quando eu deleto as pastas do remoto e vou adicionar novamente aparece o seguinte erro... Elas cria as pastas, mas o arquivo não vai para a pasta... Erro escrevendo no arquivo (/home/business/public_html\noticias\2011\08\09\200.php) Ai quando eu vou criar novamente uma noticia aparece esse erros Warning: mkdir() [function.mkdir]: File exists in /home/business/public_html/admin/noticias/cadastrar.php on line 190 Warning: mkdir() [function.mkdir]: File exists in /home/business/public_html/admin/noticias/cadastrar.php on line 195 Warning: mkdir() [function.mkdir]: File exists in /home/business/public_html/admin/noticias/cadastrar.php on line 200 Erro escrevendo no arquivo (/home/business/public_html\noticias\2011\08\09\202.php) Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Agosto 9, 2011 pelo que vi você está criando sub pastas, dá para criar todas de uma só vez, experimente o código Compartilhar este post Link para o post Compartilhar em outros sites
Chaparro 0 Denunciar post Postado Agosto 10, 2011 pelo que vi você está criando sub pastas, dá para criar todas de uma só vez, experimente o código Victor, muito obrigado pela sua ajuda... Deu super certo... não sabia que tinha como fazer isso direto... Então por isso que eu tentava na raça mesmo... Mais deu super certo... Muito obrigado... Ai também já matou o outro problema que eu tinha com esse pequeno script... Ficou assim $nome_noticia = geraUrlLimpa($noticia_id); $noticia_data = date("Y/m/d"); //pega a data atual $pasta = sprintf("%s/noticias/%s", $_SERVER['DOCUMENT_ROOT'],$noticia_data); //monta o endereço if(!file_exists($pasta)) {//verifica existência mkdir($pasta, 0755,true);//cria pasta } $filename = $pasta."/".$nome_noticia.".php"; //$filename = $_SERVER['DOCUMENT_ROOT']."noticias\\".$pasta."\\".$nome_noticia.".php"; if (!$handle = fopen($filename, 'w+')) { print "Erro abrindo arquivo ($filename)"; exit; } if (!fwrite($handle, $fotoRot)) { print "Erro escrevendo no arquivo ($filename)"; exit; } fclose($handle); Compartilhar este post Link para o post Compartilhar em outros sites