Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Download File non via URL

    Salve, sul mio sito ho file salvati nel file system e una tabella del DB che mi individua il path del file.
    Io vorrei far scaricare questi file, ma non via URL, nel senso voglio evitare che si possa scaricare il file puntando il file via browser.

    Esempio: ho un file che si chiama ciccio.pdf che si trova in http://www.miosito.it/files/ciccio.pdf

    Io voglio evitare che se uno inserisce nel browser http://www.miosito.it/files/ciccio.pdf possa scaricare il file!!!

    Come fare?



    Seconda domanda:
    Una volta evitato il mio primo problema credo che io debba implementare lo scaturire di un'azione che permetta il force download del file sparando il file con la funzione header o sbaglio?
    Come implemento questa cosa?
    Faccio una form che scaturisce l'azione di download del file con id = X che identifica il file ciccio.pdf, ma una volta che so quale file far scaricare come faccio a passare quel file alla funzione header?


    Grazie infinite in anticipo per le risposte.
    Saluti
    JellyBellyDev www.jellybellydev.it

  2. #2
    1) Se il server dove hai i file usa il web server Apache credo te la possa cavare con dei file .htaccess per evitare che i file non vengano aperti andandoci direttamente con l'url (troverai più informazioni nella sezione apposita di questo forum esistente per apache)

    2) Esistono diverse soluzioni per poter poi forzare l'header per far scaricare i file, l'ideale sarebbe avere a database (un qualsiasi database) il nome del file ed un'eventuale Id identificativo, poi ad una paginetta php basterebbe una variabile Get con l'id e raccolto il nome del file dal database potresti inserirlo nell'header ._.

    Potrei non essermi spiegato molto chiaramente lo ammetto...

  3. #3
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973

    Re: Download File non via URL

    Originariamente inviato da JellyBelly
    Salve, sul mio sito ho file salvati nel file system e una tabella del DB che mi individua il path del file.
    Io vorrei far scaricare questi file, ma non via URL, nel senso voglio evitare che si possa scaricare il file puntando il file via browser.

    Esempio: ho un file che si chiama ciccio.pdf che si trova in http://www.miosito.it/files/ciccio.pdf

    Io voglio evitare che se uno inserisce nel browser http://www.miosito.it/files/ciccio.pdf possa scaricare il file!!!

    Come fare?
    Li metti fuori dal webroot.


    Originariamente inviato da JellyBelly
    Seconda domanda:
    Una volta evitato il mio primo problema credo che io debba implementare lo scaturire di un'azione che permetta il force download del file sparando il file con la funzione header o sbaglio?
    Come implemento questa cosa?
    Faccio una form che scaturisce l'azione di download del file con id = X che identifica il file ciccio.pdf, ma una volta che so quale file far scaricare come faccio a passare quel file alla funzione header?


    Grazie infinite in anticipo per le risposte.
    Saluti
    Usi un parametro GET che ti indichi l'ID del file, poi vai e prendere suo percorso dal database e lo restituisci tramite readfile() ed impostando il tipo mime giusto tramite header().

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  4. #4
    Originariamente inviato da goikiu
    1) Se il server dove hai i file usa il web server Apache credo te la possa cavare con dei file .htaccess per evitare che i file non vengano aperti andandoci direttamente con l'url (troverai più informazioni nella sezione apposita di questo forum esistente per apache)
    Quindi se ho capito bene mi basterebbe inserire un file .htacces dentro la cartella /files/?
    come dovrebbe essere composto questo file?

    2) Esistono diverse soluzioni per poter poi forzare l'header per far scaricare i file, l'ideale sarebbe avere a database (un qualsiasi database) il nome del file ed un'eventuale Id identificativo, poi ad una paginetta php basterebbe una variabile Get con l'id e raccolto il nome del file dal database potresti inserirlo nell'header ._.
    Ma è appunto il mio caso, ho una tabella nel db che mi individua il file nel filesystem!
    E' la seconda parte di quello che hai detto che non so fare! :S
    JellyBellyDev www.jellybellydev.it

  5. #5

    Re: Re: Download File non via URL

    Originariamente inviato da neroux
    Li metti fuori dal webroot.

    Purtroppo non ho accesso al di fuori della webroot, ci avevo già pensato!

    Usi un parametro GET che ti indichi l'ID del file, poi vai e prendere suo percorso dal database e lo restituisci tramite readfile() ed impostando il tipo mime giusto tramite header().
    mica avresti uno scriptino di codice che fa appunto questo?
    Grazie
    JellyBellyDev www.jellybellydev.it

  6. #6
    Originariamente inviato da JellyBelly
    Quindi se ho capito bene mi basterebbe inserire un file .htacces dentro la cartella /files/?
    come dovrebbe essere composto questo file?



    Ma è appunto il mio caso, ho una tabella nel db che mi individua il file nel filesystem!
    E' la seconda parte di quello che hai detto che non so fare! :S
    Per il file .htaccess dovresti guardare la sezione relativa in questo forum.

    Per la parte restante tu stampi a video un link (esempio Scaricami), il contenuto dell'href potrebbe essere:

    Codice PHP:
    $id //id del file preso da database ;
    print '[url="download.php?id='.$id.'"]Scaricami![/url]'
    e nella pagina download

    Codice PHP:
    if (!isset($_GET['id']))
     {
      
    // nessun id passato, ad esempio reindirizzi ad un'altra pagina
     
    }
    else
     {
      
    $id $_GET['id'];
      
    $query "SELECT nome_file FROM tabella WHERE id='$id'"
      
    // etcetera
     


  7. #7
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973

    Re: Re: Re: Download File non via URL

    Originariamente inviato da JellyBelly
    Purtroppo non ho accesso al di fuori della webroot, ci avevo già pensato!
    Poi ci metti un .htaccess sulla tua cartella di download e ci giochi un po' con http://httpd.apache.org/docs/2.2/howto/access.html

    Originariamente inviato da JellyBelly
    mica avresti uno scriptino di codice che fa appunto questo?
    Grazie
    Un po di pseudo code

    Codice PHP:
    SELECT mimetypepath FROM table WHERE id=VALORE-DELLA-QUERY-STRING
    header
    ('Content-Type: '.mimetype);
    readfile(path); 

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  8. #8
    Originariamente inviato da goikiu
    Per il file .htaccess dovresti guardare la sezione relativa in questo forum.

    Per la parte restante tu stampi a video un link (esempio Scaricami), il contenuto dell'href potrebbe essere:

    Codice PHP:
    $id //id del file preso da database ;
    print '[url="download.php?id='.$id.'"]Scaricami![/url]'
    e nella pagina download

    Codice PHP:
    if (!isset($_GET['id']))
     {
      
    // nessun id passato, ad esempio reindirizzi ad un'altra pagina
     
    }
    else
     {
      
    $id $_GET['id'];
      
    $query "SELECT nome_file FROM tabella WHERE id='$id'"
      
    // etcetera
     


    Si si perfetto so come fare questo. E' la parte dopo aver preso il file che non so come implementare, il momento in cui devo inviare via header il file!

    Per quanto riguarda il file htaccess ora controllo nella sezione del forum se si è già parlato di una cosa simile!

    Grazie!
    JellyBellyDev www.jellybellydev.it

  9. #9

    Re: Re: Re: Re: Download File non via URL

    Originariamente inviato da neroux
    Poi ci metti un .htaccess sulla tua cartella di download e ci giochi un po' con http://httpd.apache.org/docs/2.2/howto/access.html
    Azz in inglese!

    Un po di pseudo code

    Codice PHP:
    SELECT mimetypepath FROM table WHERE id=VALORE-DELLA-QUERY-STRING
    header
    ('Content-Type: '.mimetype);
    readfile(path); 
    grazie mille, ora mi vedo come implementare al meglio questo pseudocodice!
    JellyBellyDev www.jellybellydev.it

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 © 2026 vBulletin Solutions, Inc. All rights reserved.