1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

upload de ficheiros

Discussão em 'Web Development' iniciada por fhanity, 21 de Maio de 2009. (Respostas: 11; Visualizações: 1468)

  1. Precisava de ajuda com uma pagina de administração para o meu site de upload de ficheiro para a pat..

    para ja esta assim.

    PHP:
    <?php

    $uploaddir 
    "uploads";

    $allowed_ext "jpg, gif, png, pdf, rar, zip, exe, jpeg, txt";

    $max_size "300000000";
    $max_height "";

    $max_width "";

    $random_digit=rand(0000,999999999);


    $extension pathinfo($_FILES['file']['name']);

    $extension $extension[extension];

    $allowed_paths explode(", "$allowed_ext);

    for(
    $i 0$i count($allowed_paths);
    $i++) {
    if (
    $allowed_paths[$i] == "$extension") {
    $ok "1";
    }
    }


    if (
    $ok == "1") {
    if(
    $_FILES['file']['size'] > $max_size){
    print 
    "Ficheiro demasiado grande!";

    exit;
    }

    $new_file_name=$random_digit.'.'.$extension;

        
    if(
    is_uploaded_file($_FILES['file']['tmp_name'])){
        
    move_uploaded_file($_FILES['file']['tmp_name'],$uploaddir.'/'.$new_file_name.$_FILES['name']);
    }

    $message "Ficheiro enviado. Para aceder ao ficheiro --> ";

    $link "link" $new_file_name;
        
    print 
    $message ."<a href=" $link .">" $link "</a>";

    }
    else {
        print 
    "Extensao nao permitida";
    }
    ?>
    e

    Código:
    <html>
    <head> 
    <body bgcolor="#CCCCFF">
    <form action="upload.php" method="post" enctype="multipart/form-data" name="form" id="form">
    <center><strong>Selecione um ficheiro</strong></p>
    <input name="file" type="file" id="file" size="80" /></p>
    <input type="submit" name="Submit" value="Upload!" /></center></form>
    </html>
    </body>
    Precisava de uma pagina de administração para apagar/mudar o nome aos ficheiros enviados e o IP de quem enviou assim cmo a data..

    alguem me pode ajudar ?
     
  2. AliFromCairo

    AliFromCairo Power Member

    Boas, vê se isto ajuda. Em seguida, precisas de criar um script PHP para, dado o path absoluto de um ficheiro, efectuar a acção de actualizar ou remover. Para tal, podes passar ambos os argumentos na query string (e.g. script.php?file=file.pdf&action=delete), que podes em seguida ler no script.php através da variável $_GET.
     
  3. nao tou muito familiarizada com PHP =| Isto é pra minha Pat pois tou no 12º e nos nao demos php logo o pouco q sei é por mim propria..

    com aquele script php do link dps faço como ?
     
  4. Aquele script do link acima faz uma listagem de todos os ficheiros presentes em determinada pasta.

    Tal como referiu o AliFromCairo, terás de criar um ficheiro php com as acções que pretendes.

    Pegando no exemplo acima..

    Código:
    ...
    if ($file != "." && $file != "..")
    {
           $thelist .= '<a href="/script.php?filename='.$file.'&action=delete">'.$file.'</a>';
    }
    ...
    
    Como podes reparar, alterei o link para script.php?filename=x&action=delete, que neste caso seria para apagar.

    Feito isto terás de criar o ficheiro script.php com a seguinte informação:

    Código:
    $folder_path = path_para_a_pasta;
    
    if ($_GET[filename] && $_GET[action] == 'delete') 
    {
       unlink($folder_path.$_GET['filename']);
    }
    
    Isto é um exemplo (muito) básico de como o ficheiro pode ser eliminado da pasta, apenas para que fiques com uma ideia de como pode ser feito.

    Quanto ao IP, data, etc.. acho que a forma mais fácil será recorrer a uma base dados mysql que armazene essa informação.
     
    Última edição: 23 de Maio de 2009
  5. existe alguma maneira de "ocultar" os alguns ficheiros do servidor para que eles nao apareçam na lista? ou mudar o codigo para nao aparecerem na lista..
     
  6. Neste exemplo concreto, e pegando no código inicial, apenas tens de colocar na linha if ($file != "." && $file != "..") os ficheiro que não queres que apareçam, da forma $file != 'nome_ficheiro.ext'

    Código:
    if ($file != "." && $file != ".." && $file != "o_ficheiro_q_não_queres_q_apareça.ext")
    {
           $thelist .= '<a href="/script.php?filename='.$file.'&action=delete">'.$file.'</a>';
    }
    
     
    Última edição: 24 de Maio de 2009
  7. "'.$file.''; } } } closedir($handle); } ?>

    List of files:"

    aparece-me isto qd substitui pelo teu codigo.

    tipo se eu nao quiser que apareça o apagar.html nem o delete.php nem index.php como faço ?
     
  8. Aquilo era só uma ideia para entenderes como funciona e perceberes como tinha de ser feito..

    Exemplo completo com aquilo que pediste..

    Código:
    <?php
     if ($handle = opendir('.')) {
       while (false !== ($file = readdir($handle)))
          {
            if ($file != "." && $file != ".." && $file != "apagar.html" && $file != "delete.php" && $file != "index.php")
    		{
           $thelist .= '<a href="'.$file.'">'.$file.'</a> ..... <a href="/script.php?filename='.$file.'&action=delete">(Apagar)</a><br />';
    		}
           }
      closedir($handle);
      }
    ?>
    
    <P>List of files:</p>
    <P><?=$thelist?></p>
    
     
  9. google is my friend (:

    terminei tudo tenho a pat pronta ja :D

    bgd a ambos (:
     
  10. surgiu-me mais um problema =|

    se enviar outros ficheiros alem de imagens, qd tento abrir os ficheiros directamente, supondo:

    http://site.com/uploads/fhanity.rar

    o browser tenta abrir o ficheiro em vez de guardar o ficheiro.. como altero o codigo de forma a q qd carregue num link o ficheiro seja pedido pra download?

    --

    nao sei se isto pode ser feito mas existe maneira de criar um form em q se introduza o nome do ficheiro e seja efectuado o download ?
     

Partilhar esta Página