Ir para conteúdo

POWERED BY:

Arquivado

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

Nickz

Sistema para exibir data de modificação dos arquivos

Recommended Posts

Bom tenho um sistema de upload

 

Principal

    <form action="upload.php" method="post" ENCTYPE="multipart/form-data">
    <p align="left"><font size="4" face="Verdana" color="#CCCCCC">
    <b><font color="#999999">Upload</font></b></font></p>
  <div align="left">
    <table width="401" border="0" align="left" cellspacing="1" cellpadding="1">
      <tr bgcolor="#CCCCCC"> </tr>
      <tr bgcolor="#E1E1E1">
           
      <td>        
      </tr>
      <tr bgcolor="#E1E1E1">
        <td nowrap><font size="2" face="Verdana">Nome do Diretorio</font></td>
        <td><input type="radio" name="select_dir" value="diretorio2">
        </td>
        <td><input type="text" name="diretorio2" size="15">
        </td>
      </tr>
      <tr bgcolor="#E1E1E1">
        <td><font size="2" face="Verdana">Arquivo</font></td>
        <td> </td>
        <td><input type="file" size=15 name="file">
        </td>
      </tr>
      <tr>
        <td colspan="3">
          <div align="left">
            <input type="submit" value="Enviar" name="submit">
          </div>
        </td>
      </tr>
    </table>
    <input type="hidden" name="MAX_FILE_SIZE" value="1000000">
    <br>
    </div>
</form>
    <p> </p>
    <p>
      <?include ('rodape.php')?>
    </p>
    <p> </p>
    <p>*
  Dica, facilite a organização use sempre o mesmo nome para seu
      diretorio!</p>

Upload

<?php
    /*
    * Upload 2.0 30/12/03
    *
    * Envia arquivos para a pasta escolhida pelo usuário
    * caso não exista, a pasta será criada no servidor.
    *
    * Diego Monteiro Medeiros de Araújo
    * hypermedeiros@yahoo.com.br
    */

    // Altera o umask para a criação do diretório
    $umask_anterior = umask(0);

    if ($_FILES["file"]["error"] === 0)
    {  
       @ mkdir($_POST["{$_POST["select_dir"]}"],0777);
	   @ move_uploaded_file($_FILES["file"]["tmp_name"],"./{$_POST["{$_POST["select_dir"]}"]}/{$_FILES["file"]["name"]}");
    ?>
        <script>
            window.alert('Arquivo carregado com sucesso!!');
            history.back();
        </script>
    <?
    }
    else
    {
        switch ($_FILES["file"]["error"])
        {
            case 1:
                $msg_err = "O arquivo no upload é maior do que o limite \ndefinido em upload_max_filesize no php.ini!";
            break;
            case 2:
                $msg_err = "O arquivo ultrapassa o limite de tamanho em \nMAX_FILE_SIZE que foi especificado no formulário!";
            break;
            case 3:
                $msg_err = "O upload do arquivo foi feito parcialmente!";
            break;
            case 4:
                $msg_err = "Não foi feito o upload do arquivo. Tente novamente!!!";
            break;
            default:
                $msg_err = "Ocorreu um erro.\nVerifique qual o problema!!!";
        }
    ?>
        <script>
            window.alert('<?=$msg_err?>');
            history.back();
        </script>
    <?

    umask($umask_anterior);
    }
?>

Listagem de arquivos

    <?
    $dh = opendir(($dir = './'));

    while (false !== ($filename = readdir($dh)))
    {
    ?>
    <table width="401" border="0" align="center" cellspacing="1" cellpadding="1">
        <tr>
        <?
        if (is_dir("$dir$filename") && ! ($filename == '.' || $filename == '..'))
        {
        ?>
            <td width="15%">Diretório</td>
            <td width="85%"><?="<a href=\"$dir$filename\">$filename</a>"?></td>
        </tr>
        <?
        }
        elseif (is_file("$dir$filename") && ! ($filename == '.' || $filename == '..'))
        {
        ?>
        <tr>
            <td width="15%">Arquivo</td>
            <td width="85%"><?="<a href=\"$dir$filename\">$filename</a>"?></td>
        <?
        }
        ?>
        </tr>
    </table>
    <?
    }
    ?>

Está me servindo super bem, so estou com dois problemas, 1 não estou conseguindo uma forma de colocar a opção de deletar esse arquivo na listagem nem, uma forma de exibir a ultima vez que ele foi editado, quem tiver alguma dica, quanto a me recomendar o MTUPLOAD, eu não achei viavel o uso, pois tive um problem a com ele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sou leigo, mas a lista assim como as informações dos arquivos são gravados no mysql?

Se não, eu não entendo nada =/

 

Se for no mysql faz update com a function date (y)

Compartilhar este post


Link para o post
Compartilhar em outros sites

A função filemtime retorna a data da últuma modificação do arquivo (mas não sei se isso é confiável), quanto a apagar, você teria que passar um link com o nome do arquivo, algo do tipo:

<a href="apagar=arquivotal.doc">APAGAR</a>

Ai no PHP você verifica se o apagar está setado e apaga o arquivo

 

if(isset($_GET['apagar'])){
unlink($_GET['apagar']);
}

Óbvio que é interessante ver se o arquivo existe, e verificar se o cara não está tentando injetar algo no teu script..

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo, muito bom. posso dar uma ideia para seu sistema ficar perfeito? quando der o comando de up, tem como fazer que um arquivo index (para listagem) seja copiado juntamente com o arquivo na pasta criada? assim quando a pasta for criada, ela já terá listagem automatica.

 

desta maneira você colocaria uma listagem no diretorio do up, que iria listar todas as pastas, e as que forem criadas já terão o arquivo de listagem dentro delas, sendo um index, entendeu "mai" ou "meno" ? vlw.

 

seria algo no estilo:

 

<?php
$file = 'example.txt';
$newfile = 'example.txt.bak';

if (!copy($file, $newfile)) {
    echo "failed to copy $file...\n";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta feito:

 

 

$de = "/home/SEU_DOMINIO/public_html/arquivo_de_listagem/index.php";
  $para = "./{$_POST["{$_POST["select_dir"]}"]}/index.php";

  if(copy($de, $para))
    echo "Arquivo copiado com sucesso.";
  else
    echo "Não foi possível copiar o arquivo.";

 

Desta maneira, você pode colocar um index em sua pasta pincipal de up-load, e quando você ver que tem uma pasta nova, basta entrar nela, que já vai existir a listagem, assim, você podera ver os arquivos já, ao inves de ter que ficar indo via FTP.

 

 

abraços amigo.

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.