Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente bannato
    Registrato dal
    Mar 2010
    Messaggi
    65

    Download file da FTP tramite funzioni PHP

    Buongiorno ragazzi,
    avrei un problema... Dovrei creare una pagina HTML/PHP di visualizzazione e download dei file presenti in una cartella sull'FTP ma non so proprio come fare...
    Mi potete aiutare perfavore?...

  2. #2
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    Ciao, intanto dovresti essere certo che il tuo server dove posti il tuo sito abbia anche un server ftp per utilizzare questo servizio, nel caso in cui l'avesse le operazioni in php sono abbastanza banali. Ti posto un link ad un esempio di codice per download e upload via ftp http://free-script.it/post/Script_ph...con_php-64.htm.
    Spero ti sia di aiuto

  3. #3
    Utente bannato
    Registrato dal
    Mar 2010
    Messaggi
    65
    Originariamente inviato da jcsnake
    Ciao, intanto dovresti essere certo che il tuo server dove posti il tuo sito abbia anche un server ftp per utilizzare questo servizio, nel caso in cui l'avesse le operazioni in php sono abbastanza banali. Ti posto un link ad un esempio di codice per download e upload via ftp http://free-script.it/post/Script_ph...con_php-64.htm.
    Spero ti sia di aiuto
    Ciao, ho provato a studiarmenlo ma non riesco a trovare nulla che mi serva... Cioè a me serve soltanto leggere i file in un FTP e visualizzarlo come in una tabella con la possibilità di scaricare i file scelti!!... Non c'è nessun modo?

  4. #4
    Come ti ha detto jcsnake va bene, puoi utilizzare quella fuzione del download per scaricare il file scelto. In prastica vorresti leggere il contenuto di una cartella?? e elencare i file??
    Che mondo sarebbe senza Nutella.

    PHP/MYSQL/HTML/CSS/JAVASCRIPT

  5. #5
    Utente bannato
    Registrato dal
    Mar 2010
    Messaggi
    65
    Originariamente inviato da CiRi..Cuber
    Come ti ha detto jcsnake va bene, puoi utilizzare quella fuzione del download per scaricare il file scelto. In prastica vorresti leggere il contenuto di una cartella?? e elencare i file??
    Si esatto, elencare il contenuto della cartella FTP, e se ci sono delle cartelle dentro possibilità di aprirle e vedere cosa c'è dentro e poter scaricare...

  6. #6
    Questo è uno script trovato in rete che legge il contenuto di una cartella, e modificato a piacere con grafica ecc potrebbe andare bene, se vuoi una mano =)

    Codice PHP:
    function leggi_cartella($pagina_destinazione,$directory)
    {
       
    $dir=$directory;
       if (
    $handle opendir($dir))
       {
          while (
    false !== ($file readdir($handle)))
          {
           
    $percorso="$dir/$file";
           
    $size_file=filesize($percorso)/1000;
           
    $size_file=round($size_file,1);
           
    $size_file=" ( ".$size_file." Kb )";
           
    // "." ".." = servono per non far viualiazzare i caratteri per tornare indietro
           
    if ( ($file<> ".") & ($file<> "..") )
           {
            echo 
    "
        [*][url="
    $percorso"]$file$size_file[/url]";
           }
        }
    }
    else
    {
      echo 
    "Cartella inesistente. Contattare l'AMMINISTRATORE";
    }

    Che mondo sarebbe senza Nutella.

    PHP/MYSQL/HTML/CSS/JAVASCRIPT

  7. #7
    Guarda ho fatto una paginetta che potrebbe andare bene per le tue esigenze, modificala come vuoi ho messo qualche commento =)

    Codice PHP:

    <?
    //funzione per aprire un cartella verra chiamata solo se la cartella esiste
    function open_dir($nome_dir){

        
    //apro la cartella
        
    if (!$open_dir opendir($nome_dir)){
            echo 
    "Cartella non trovata, controlla il percorso del file!";
        }
        else{
            
    $percorso="$nome_dir"
            
    $size_dir=filesize($percorso)/1000
            
    $size_dir=round($size_dir,1); 
            
    $size_dir=" ( ".$size_dir." Kb )";
            echo 
    "Cartella: [b]$nome_dir - $size_dir[/b] 

    "
    ;
            while (
    $read=readdir($open_dir)){
                if(
    $read != "." && $read != "..") {
                    
    //se è un file
                    
    if (strstr($read".")){
                        echo 
    "[*]$read";
                    }
                    else{
                        echo 
    "[*]<a href=\"?dir=$nome_dir/$read\">$read</a>";
                    }
                        
                    
                }
            }
        }
    }
    //funzione per andare indietro
    function ind($dir){
        
    $array explode("/",$dir);
        
            
    $dir array_pop($array);
            
    $dir implode("/",$array);
            
    header("location: ?dir=$dir");
        
    }

    //se ha inserito qualche directori da caricare ma non è andato indietro mostro il pulsanti
    //e mostro la cartella
    if (!empty($_GET['dir']) && empty($_GET['ind'])){

        
    $dir $_GET['dir'];

        echo 
    "
            <input type=\"submit\" value=\"<\" onClick=\"location.href='?ind=ok&dir=
    $dir';\" />


        "
    ;

        
    open_dir($_GET['dir']);

    }
    //se è piena la directori e ha schiacciato sul p0ulsante indietro
    //prendo le variabili e faccio partire la funziona indietro
    else if (!empty($_GET['dir']) && $_GET['ind'] == 'ok'){
        
    $dir $_GET['dir'];

        
    ind($dir);

    }
    else{
        
            echo 
    "<script>alert(\"Errore di indirizzamento!\"); history.go(-1);</script>";
        
        
    }


    ?>
    Per farla funzionare devi inserire il percorso del file e come GET così:

    percorso_del_file.php?dir=nome_cartella
    Fammi sapere ok?
    Che mondo sarebbe senza Nutella.

    PHP/MYSQL/HTML/CSS/JAVASCRIPT

  8. #8
    Guarda, dato che mi sono intrippato con questa cosa ti ho fatto anche l'impaginazione e il download =)

    Leggi file/cartelle:
    Codice PHP:
    <?
    //funzione per aprire un cartella verra chiamata solo se la cartella esiste
    function open_dir($nome_dir){

        
    //apro la cartella
        
    if (!$open_dir opendir($nome_dir)){
            echo 
    "Cartella non trovata, controlla il percorso del file!";
        }
        else{
            
    $percorso="$nome_dir"
            
    $size_dir=filesize($percorso)/1000
            
    $size_dir=round($size_dir,1); 
            
    $size_dir=" ( ".$size_dir." Kb )";

            echo 
    "Cartella: [b]$nome_dir - $size_dir[/b] 

    "
    ;

            
    //inizio la tabella dei file e cartelle
            
    echo "<table border=\"1\" cellpadding=\"5px\">
                        <tr>
                            <td>[b]TIPO[/b]</td>
                            <td>[b]NOME[/b]</td>
                            <td>[b]SIZE[/b]</td>
                            <td>[b]DOWNLOAD[/b]</td>
                            <td>[b]OPEN[/b]</td>
                        </tr>

            "
    ;
            while (
    $read=readdir($open_dir)){



                if(
    $read != "." && $read != "..") {
                    
                        

                    
    //se è un file
                    
    if (strstr($read".")){
                        
    //prendo la dimensione del file/directory
                        
    $percorso_="$nome_dir/$read";
                        
    $size_file=filesize($percorso_)/1000;
                        
                       echo 
    "
                            <tr>
                                <td>File</td>
                                <td>
    $read</td>
                                <td>(
    $size_file) Kb</td>
                                <td><form action=\"download.php\" method=\"post\"><input type=\"submit\" value=\"download\" /><input type=\"hidden\" value=\"
    $read\" name=\"nome\" /><input type=\"hidden\" value=\"$size_file\" name=\"size\" /></form></td>
                                <td> - </td>
                            </tr>

                        "
    ;




                    }
    //se è una cartella
                    
    else{
                        echo 
    "
                            <tr>
                                <td>Directory</td>
                                <td>
    $read</td>
                                <td> - </td>
                                <td> - </td>
                                <td><a href=\"?dir=
    $nome_dir/$read\">apri</a></td>
                            </tr>

                        "
    ;

                    }
                        
                    
                }
            }
            echo 
    "</table>";
        }
    }
    //funzione per andare indietro
    function ind($dir){
        
    $array explode("/",$dir);
        
            
    $dir array_pop($array);
            
    $dir implode("/",$array);
            
    header("location: ?dir=$dir");
        
    }

    //se ha inserito qualche directori da caricare ma non è andato indietro mostro il pulsanti
    //e mostro la cartella
    if (!empty($_GET['dir']) && empty($_GET['ind'])){

        
    $dir $_GET['dir'];

        echo 
    "
            <input type=\"submit\" value=\"<\" onClick=\"location.href='?ind=ok&dir=
    $dir';\" />


        "
    ;

        
    open_dir($_GET['dir']);

    }
    //se è piena la directori e ha schiacciato sul p0ulsante indietro
    //prendo le variabili e faccio partire la funziona indietro
    else if (!empty($_GET['dir']) && $_GET['ind'] == 'ok'){
        
    $dir $_GET['dir'];

        
    ind($dir);

    }
    else{
            echo 
    "<script>alert(\"Errore di indirizzamento!\"); history.go(-1);</script>";
       
    }


    ?>
    download.php
    Codice PHP:

    <?
    $nome_file
    =$_POST['nome'];
    $size_file=$_POST['size'];

    if (empty(
    $nome_file) || empty($size_file)){
        echo 
    "<script>alert(\"Errore nel download!\"); history.go(-1);</script>";
    }
    else{

        
    header("Content-type: Application/octet-stream");
        
    header("Content-Disposition: attachment; filename=$nome_file");
        
    header("Content-Description: Download PHP");
        
    header("Content-Length: $size_file");
        
    readfile($nome_file);

    }


    ?>
    Se vuoi vederlo funzionante vai qui:
    http://wordsbank.altervista.org/prov...?dir=lib/touch

    Fai qualche prova a levare la dir o a andare troppo indietro con le pagina =)
    Che mondo sarebbe senza Nutella.

    PHP/MYSQL/HTML/CSS/JAVASCRIPT

  9. #9
    Utente bannato
    Registrato dal
    Mar 2010
    Messaggi
    65
    :O
    CiRi..Cuber non so proprio come ringraziarti davvero... Mi stai facendo risparmiare tempo e denaro... Poi ti aggiungo su MSN o Skype ti voglio dare qualcosa in cash per l'aiuto davvero

    Però una domanda, ho copiato ed incollato il primo pezzo della lettura e scrittura in una pagina index.php e il download l'ho messo sempre nella stessa cartella con download.php.
    Senza modificare nulla l'ho fatto partire per provare, ma mi da errore di reindirizzamento....

  10. #10
    Tranquillo ti spiego, la pagina si basa su i dati presi da get, diciamo che in assenza di ?dir=nome_cartella giustamente non può cercare la tabella .
    Se al contrario vuoi che sia sempre una cartella te lo modifico.
    Che mondo sarebbe senza Nutella.

    PHP/MYSQL/HTML/CSS/JAVASCRIPT

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.