Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente bannato
    Registrato dal
    Nov 2005
    Messaggi
    266

    elenco file da scaricare da cartella con php

    ho utilizzato il seguente script per fare upload di file

    http://free-script.it/post/Script_ph....htm#ultimo361

    il risultato è questo

    http://phpstudio.altervista.org/martina/index.php

    tutto funzionante, in pratica se si fa upload di un file questo se rispetta le specifiche di dimensione e estensione viene salvato su una cartella del server.


    vorrei trovare o se qualcuno me lo fa direttamente, ancora meglio, il modo per far si che i file salvati nella cartella dove viene fatto l'upload vengano stampati su una pagina web e l utente possa scaricarli.


    chi mi aiuta???

  2. #2

    Re: elenco file da scaricare da cartella con php

    Originariamente inviato da kevin0101
    ho utilizzato il seguente script per fare upload di file

    http://free-script.it/post/Script_ph....htm#ultimo361

    il risultato è questo

    http://phpstudio.altervista.org/martina/index.php

    tutto funzionante, in pratica se si fa upload di un file questo se rispetta le specifiche di dimensione e estensione viene salvato su una cartella del server.


    vorrei trovare o se qualcuno me lo fa direttamente, ancora meglio, il modo per far si che i file salvati nella cartella dove viene fatto l'upload vengano stampati su una pagina web e l utente possa scaricarli.


    chi mi aiuta???
    Codice PHP:
             $dir='directory_della_cartella';
             if (
    $handle opendir($dir))
             {
               while (
    false !== ($file readdir($handle)))
               {
                 
    //qui poi mettere i filtri per le estenzioni valide (puoi anche toglierle, qui per 
                 //esempio ci sono file di immagini jpg,bmp,gif e cmq dovresti escludere sempre
                 // due file nominati '.' e '..' non scordarlo!!)
                 
    if ( (substr($file,strpos($file,'.')+1)=='jpg' ) or
                     (
    substr($file,strpos($file,'.')+1)=='bmp') or
                    ( 
    substr($file,strpos($file,'.')+1)=='gif' ) )
                 {
                   
    $cartella[$i]=$file;
                   
    $i++;
                 }
               }
               
    closedir($handle);
             }
            
    //ora hai la lista dei file(gli indirizzi) contenuti in quella cartella in $cartella! 
    facile no?
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

  3. #3
    Utente bannato
    Registrato dal
    Nov 2005
    Messaggi
    266
    Grazie infinite...
    ma non riesco a farlo funzionare...

    ho cambiato questo 'directory_della_cartella' con il nome della cartella dove vengono uploadati i file (è una cartella nomeublic)

    però ottengo una pagina vuota...

    di sicuro sto sbagliando qualcosa...ma cosa?

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    116
    quello che ottieni da quello script e un array con tutti i file della cartella non devi fare niente altro che un ciclo foreach per stamparli a video con echo tipo cosi :
    Codice PHP:
    <?php
    $dir
    ='directorydainserire'
             if (
    $handle opendir($dir)) 
             { 
               while (
    false !== ($file readdir($handle))) 
               { 
                 
    //qui poi mettere i filtri per le estenzioni valide (puoi anche toglierle, qui per 
                 //esempio ci sono file di immagini jpg,bmp,gif e cmq dovresti escludere sempre 
                 // due file nominati '.' e '..' non scordarlo!!) 
                 
    if ( (substr($file,strpos($file,'.')+1)=='jpg' ) or 
                     (
    substr($file,strpos($file,'.')+1)=='bmp') or 
                    ( 
    substr($file,strpos($file,'.')+1)=='gif' ) ) 
                 { 
                   
    $cartella[$i]=$file
                   
    $i++; 
                 } 
               } 
               
    closedir($handle); 
             } 

    foreach (
    $cartella as $file)
    {
        echo 
    "<a href=\"$dir/$file\">$file</a>
    "
    ;
    }



    ?>

  5. #5
    Utente bannato
    Registrato dal
    Nov 2005
    Messaggi
    266
    grazie infinite...tutto perfetto e fantastico...una vera figata il php


    un'ultima domanda...se clicco su uno dei file elencati che sia un'immagine o un file txt del blocco notes me lo apre in una pag web, come faccio per far venire la domandina ...vuoi salvare il file?...dove? al posto di farlo aprire direttamente...


    non so se mi sono spiegato...

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    116
    potr4esti creare una pagina con i rispettivi header che forzano l'apertura della finestra tipica per il salvataggio dei file

    esempio file download.php
    Codice PHP:
    <?php
    $nome_file
    =$_GET['nome_file'];
    header("Content-type: Application/octet-stream");
    header("Content-Disposition: attachment; filename=$nome_file");
    header("Content-Description: Download PHP");
    readfile($nome_file);
    ?>
    poi nello script di prima modifichi il link che rimanda il nome del file a questa pagina una cosa cosi insomma:

    Codice PHP:
    <?php 
    $dir
    ='tua-directory'
             if (
    $handle opendir($dir)) 
             { 
               while (
    false !== ($file readdir($handle))) 
               { 
                 
    //qui poi mettere i filtri per le estenzioni valide (puoi anche toglierle, qui per 
                 //esempio ci sono file di immagini jpg,bmp,gif e cmq dovresti escludere sempre 
                 // due file nominati '.' e '..' non scordarlo!!) 
                 
    if ( (substr($file,strpos($file,'.')+1)=='jpg' ) or 
                     (
    substr($file,strpos($file,'.')+1)=='bmp') or 
                    ( 
    substr($file,strpos($file,'.')+1)=='gif' ) ) 
                 { 
                   
    $cartella[$i]=$file
                   
    $i++; 
                 } 
               } 
               
    closedir($handle); 
             } 

    foreach (
    $cartella as $file

        echo 
    "<a href=\"download.php?nome_file=$dir/$file\">$file</a>
    "





    ?>

    prova e fammi sapere

  7. #7
    Utente bannato
    Registrato dal
    Nov 2005
    Messaggi
    266
    c è un problema...mi sembra che funzioni, però mi salva i file senza estensione...


    come si può fare?

  8. #8
    attenzione al browser che ti trovi davanti, devi mettere un controllo perchè c'è differenza tra IE e Firefox:

    Codice PHP:
                 $percorso='cartella dove si trova il file';
                 
    $name='nomefile';
                  
    // SE IL BROWSER È INTERNET EXPLORER
                  
    if(ereg("MSIE ([0-9].[0-9]{1,2})"$_SERVER["HTTP_USER_AGENT"]))
                  {
                    
    header("Content-Type: application/octetstream");
                    
    header("Content-Disposition: inline; filename=$name");
                    
    header("Expires: 0");
                    
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
                    
    header("Pragma: public");
                  }
                  else
                  {
                    
    header("Content-Type: application/octet-stream");
                    
    header("Content-Disposition: attachment; filename=$name");
                    
    header("Expires: 0");
                    
    header("Pragma: no-cache");
                  } 
                  
    $data=readfile($percorso.$name);
                  echo 
    $data
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

  9. #9
    Utente bannato
    Registrato dal
    Nov 2005
    Messaggi
    266
    se volessi fare questa cosa (in teoria è simile a ciò fatto fino ad ora)
    fare l'upload di un solo file word con stesso nome, ad esempio annunci.doc
    che di volta in volta vado a modificare e ad aggiornare in questa modalità,

    in maniera tale che il contenuto del file di word venga inserito nel layout della mia pagina web
    senza che debba andare a modificare il codice ogni volta...

    non so se sono stato chiaro...
    vorrei che fatto l'upload del file, questo venisse stampato direttamente.



    grazie

  10. #10
    chiedo scusa...ma l'elenco dei file contenuti presenta lettere accentate che visualizzo correttamente (esempio Tutto ciò.....) ma se ci clicko mi dice che il file (esempio Tutto ciciò.....) non esiste....qualcuno può aiutarmi????

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.