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

Problema Com Upload


ricardo.cabral

Pergunta

Pessoal, o codigo abaixo tenta fazer um upload num servidor, mas joga-lo pra um diretorio cujo sistema vai criar. o diretorio já esta com permissão 777 mas o código ainda da erro. Alguém pode me dizer onde está esse erro?

Obrigado desde já!

Ricardo Cabral

<?php 

if(!$acao) { 
?> <form method="POST" action="upload.php?acao=upload" ENCTYPE="multipart/form-data"> 


<table width="52%" border="0" align="center"> 
  <tr> 
    <td> <strong><font size=1 face=Verdana>Diretório:</font> </strong></td> 
    <td><input type="eradir" name="eradir">
      </td> 
  </tr> 
  <tr> 
    <td><strong><font size=1 face=Verdana>Arquivo:&nbsp;</font> </strong></td> 
    <td><input type="file" name="file"></td> 
  </tr> 
  <tr> 
    <td>&nbsp;</td> 
    <td><input name="submit" type="submit" value="Fazer Upload"> 
     </td> 
  </tr> 
</table> 
      
<?php 

  $dir = $id;
   $destino = realpath("/var/www/buildings/edificio/edificio_imagens");

  $path = $destino. "/" .$dir;
  echo "<br>";
  echo $path;
  
} elseif($acao=="upload") { 
  // if(!file_exists($dir)){
  

  if(!file_exists($path)){ 
   mkdir($dir, 0777); 
   } 
   $status = move_uploaded_file($file,"$path"."$file_name"); 


   if($status == 1) { 
    echo $destino;
   echo "Arquivo Enviado"; 
   
   
   }  
   else { 
   echo "Erro ao Enviar"; 
   } 
} 
?> 

Link para o comentário
Compartilhar em outros sites

16 respostass a esta questão

Posts Recomendados

  • 0

Pessoal, o codigo abaixo tenta fazer um upload num servidor, mas joga-lo pra um diretorio cujo sistema vai criar. o diretorio já esta com permissão 777 mas o código ainda da erro. Alguém pode me dizer onde está esse erro?

Obrigado desde já!

Ricardo Cabral

<?php

if(!$acao) {

?> <form method="POST" action="upload.php?acao=upload" ENCTYPE="multipart/form-data">

<table width="52%" border="0" align="center">

 <tr>

   <td> <strong><font size=1 face=Verdana>Diretório:</font> </strong></td>

   <td><input type="eradir" name="eradir">

     </td>

 </tr>

 <tr>

   <td><strong><font size=1 face=Verdana>Arquivo:&nbsp;</font> </strong></td>

   <td><input type="file" name="file"></td>

 </tr>

 <tr>

   <td>&nbsp;</td>

   <td><input name="submit" type="submit" value="Fazer Upload">

    </td>

 </tr>

</table>

     

<?php

 $dir = $id;

  $destino = realpath("/var/www/buildings/edificio/edificio_imagens");

 $path = $destino. "/" .$dir;

 echo "<br>";

 echo $path;

 

} elseif($acao=="upload") {

 // if(!file_exists($dir)){

 

 if(!file_exists($path)){

  mkdir($dir, 0777);

  }

  $status = move_uploaded_file($file,"$path"."$file_name");

  if($status == 1) {

   echo $destino;

  echo "Arquivo Enviado";

 

 

  }  

  else {

  echo "Erro ao Enviar";

  }

}

?>

De onde vem aquela variável $id que eu deixei em vermelho ali em cima?

Do formulário? huh.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Sim vem do formulário via get, é uma String e a partir dela que eu vou criar meu diretório.

Mesma coisa que

$dir = "php";

na hora do mkdir eu quero que ele crie um diretorio em

/var/www/../../php/imagem.jpg

ele cria esse diretório /php e faz o upload do arquivo imagem.jpg.

Procurei em tudo que é lugar (espero) e não achei :-(

[]'s

Link para o comentário
Compartilhar em outros sites

  • 0
Link para o comentário
Compartilhar em outros sites

  • 0
Cara, alterei o código para

 $dir = $_GET['id'];

o Original está em

Página Original

continua pegando a váriavel que eu quero, mas não cria o diretório :-(

Tentou colocar um valor fixo na variável pra ver se o problema realmente não é dela?

O diretório onde você está tentando criar o subdiretório está com o CHMOD 777, certo? huh.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Tomara!!! que seja! hehehehehe

http://www.buildings.com.br/buildings/edif...gens/upload.php

ou

/var/www/buildings/../../upload.php

o upload chama ele mesmo com a ação de enviar o arquivo pro destinoe onde eu quero salvar é dpois de

/edificio_imagens/nome_id/arquivo.jpg

Será que ficou claro?

Obrigado pela pacência :-)

Link para o comentário
Compartilhar em outros sites

  • 0

Cara....coloquei o seu script pra rodar aqui ele está com vários problemas de caminho de pasta e arquivo...

O problema principal é o seguinte: o script sempre tem como base o diretório onde ele está... se ele está no diretório /var/home/ximbica e você mandar ele salvar o arquivo em ./teste/, ele vai salvar o arquivo em /var/home/ximbica/teste/...

Todo o caminho depende de onde está o arquivo que faz o upload, então você vai ter que dar uma ajustada nessas suas variáveis...

Faz o seguinte, pra ficar mais fácil: faz primeiro a parte em que ele cria o diretório caso ele não exista...depois você parte pro upload... vai ser mais simples... cool.gif

E não precisa agradecer, cara, estamos aqui pra ajudar quem quer aprender a linguagem... cool.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Cara só tenho a agradecer :-) funcionou só que tem um problema que eu tentei resolver e acabou não dando certo. Ele fez o Upload, cria o diretorio, mas quando tento mandar o arquivo ao invés de cair no else ele da uma mensagem de erro.

De qualquer forma o código fica aqui pra quem precisar algum dia :-). Agora se alguém soubesse como eu faço pra evitar o segundo erro abaixo ficaria feliz.

Obrigado

<?php 

if(!$acao) { 
?> <form method="POST" action="upload.php?acao=upload&id=<?php echo $id?>" ENCTYPE="multipart/form-data"> 


<table width="52%" border="0" align="center"> 
  <tr> 
    <td> <strong><font size=1 face=Verdana>Diretório:</font> </strong></td> 
    <td><input type="eradir" name="eradir">
      </td> 
  </tr> 
  <tr> 
    <td><strong><font size=1 face=Verdana>Arquivo:&nbsp;</font> </strong></td> 
    <td><input type="file" name="file"></td> 
  </tr> 
  <tr> 
    <td>&nbsp;</td> 
    <td><input name="submit" type="submit" value="Fazer Upload"> 
     </td> 
  </tr> 
</table> 
      
	<?php 
  

   $destino = realpath("/var/www/buildings/edificio/edificio_imagens/");

  echo $destino;
 echo "<br>";
  echo $dir;
  
} elseif($acao=="upload") { 

    $dir = $id;


  
  if(!file_exists($destino)){ 

       mkdir($dir, 0777); 
   
   } 
   else
    {
	echo "Diretorio já existe!!!";


    }
  $status = move_uploaded_file($file,"$dir"."/" ."$file_name"); 

   if($status == 1) {
  
   
   echo "Arquivo Enviado"; 
   
   
   }  
   else { 
   echo "Erro ao Enviar"; 
   } 
} 
?> 

Ricardo Cabral

Link para o comentário
Compartilhar em outros sites

  • 0

Carinha problema resolvido :-) obrigado novamente

  
  if(!file_exists($destino)){ 

       mkdir($dir, 0777); 
     $status = move_uploaded_file($file,"$dir"."/" ."$file_name"); 
   
   } 
   else
    {
  $status = move_uploaded_file($file,"$destino"."/" ."$file_name"); 
	echo "Diretorio já existe!!!";


    }
 

So substitui pelo codigo acima!

Fica de exemplo, se alguém precisar :-). Não conhecia o forum, mas valeu a ajuda! se eu puder ajudar o pessoal não exite em me procurar também!

[]'s galera

Ricardo Cabral

Link para o comentário
Compartilhar em outros sites

  • 0

Opa...ficou fera... smile.gif

Eu só colocaria um tratamento de erro naquela função do move_uploaded_file()... só pro usuário não ficar vendo os erros caso aconteçam...

Só fazer uma mensagenzinha de erro personalizada...ia ficar style...

Mas do jeito que está já funciona beleza...

Parabéns aí, cara... cool.gif

Link para o comentário
Compartilhar em outros sites

  • 0
Opa...ficou fera... smile.gif

Eu só colocaria um tratamento de erro naquela função do move_uploaded_file()... só pro usuário não ficar vendo os erros caso aconteçam...

Só fazer uma mensagenzinha de erro personalizada...ia ficar style...

Mas do jeito que está já funciona beleza...

Parabéns aí, cara... cool.gif

já estou providenciando :-) muito obrigado novamente!!!! estava parado a uma semana isso, já estava ficando louco! Espero poder retribuir a ajuda pra galera!

[]'s

Ricardo Cabral

Link para o comentário
Compartilhar em outros sites

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,2k
×
×
  • Criar Novo...