Jump to content


Photo

Acesso A Diretório


  • Faça o login para participar
1 reply to this topic

#1 hefestos

hefestos

    Normal

  • Usuários
  • 105 posts
  • Sexo:Não informado

Posted 20/06/2005, 15:46

Estou usando o seguinte código para acessar um diretório no servidor, e colocar um link para quando o usuário clicar ele baixar o arquivo. Coisa simples.

<?php 
$listar = "empresas"; 
$diretorio= $_SESSION['MM_Username']."/downloads";  
if ($dir=opendir("$listar/".$diretorio)){ 
	while(($arquivos=readdir($dir)) !== false){ 
  if ($arquivos <> "." && $arquivos <> ".." ){ 
 	 $tamanho[] = filesize 
 	 ("$listar/".$diretorio."/".$arquivos); 
 	 $data_hora[] = filemtime 
 	 ("$listar/".$diretorio."/".$arquivos); 
 	 $nome_arquivo[] = $arquivos; 
 	 } 
  } 
closedir($dir); 
} 

  $n_arquivos = count($data_hora); 
  arsort($data_hora); 
  reset($data_hora); 
  while (list ($chave, $valor) = each ($data_hora)){ 
?><tr><td class="ved_x_bold"><div align="center">
<a href="<?php echo "$listar".$diretorio."/".$nome_arquivo[$chave]; ?>"></a>
<a target="_blank" href="<?php echo "$listar"."/".$diretorio."/".$nome_arquivo[$chave]; 
?>">
 	 
	<?php 
	$arquivo= $nome_arquivo[$chave]; 
	$limite=35; 
	$arquivo = substr($arquivo, 0,$limite); 
	echo $arquivo."..."; 
	?> 

</a></div></td>
	
<td align="center" class="ved_x_sgl">
<?php echo number_format (($tamanho[$chave]/1024),2)."k"; ?>
</td></tr>
<?php } 
clearstatcache(); 
 ?>

Só que tem um problemão.... quando não tem arquivos no diretório, ele da o seguinte erro :

Warning: arsort() expects parameter 1 to be array, null given in /home/racional/public_html/funcionarios.php on line 119

Warning: reset(): Passed variable is not an array or object in /home/racional/public_html/funcionarios.php on line 120

Warning: Variable passed to each() is not an array or object in /home/racional/public_html/funcionarios.php on line 121


o que posso adicionar no código pra não aparecer o erro ? ou pra aparecer uma mensagem mais amigável
Éverton Luiz Gomes
www.evertongomes.com
evertonluiz@gmail.com
(47) 8402-1996

#2 MarviN*

MarviN*

    nw . newton web

  • Usuários
  • 780 posts
  • Sexo:Não informado
  • Localidade:Brasília - DF

Posted 20/06/2005, 17:24

Se vc usar um '@' na frente das funções, o PHP não irá mostrar os erros, exemplo:

@arsort($data_hora);
@reset($data_hora);


Você também pode fazer uma condicional (if) e verificar se existe algum valor dentro do array. Caso exista, vc executa o bloco de código, caso contrário....
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
[ Blog Desenvolvimento Web: http://www.newtonwagner.net/blog ]
[ Diário da Selva: http://www.diariodaselva.com/ ]

[ "Não existe um caminho para a paz; a paz é o caminho." Mahatma Gandhi ]




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq