Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2013
    Messaggi
    78

    scaricare file dal server

    Buona sera a tutti, vi scrive un noob che ha studiato php alle superiori 5 anni fa e non ha più avuto a che fare con tecnologie server side.
    Ho una semplicissima pagina php che mi visualizza un elenco di file contenuti nella cartella che esegue la pagina.
    Questo elenco è formato da link, che puntano semplicemente al nome del file; questa cosa permette di scaricare il file cliccando semplicemente sul link.
    La cosa funziona perfettamente.
    A questo punto ho aggiunto all'elenco anche file contenuti in un HD esterno collegato al server, ma mettendo il percorso del file non posso accederci e fare il download.
    Credo che sia un sistema di sicurezza, che non permette di accedere a file al di fuori (nel mio caso con ubuntu server) di var/www/html.
    E' possibile aggirare questo sistema?

  2. #2
    Ciao,

    Che cosa si può fare è di avere tutti i link puntano a uno script di download che prende un parametro che punta al file. Questo script può quindi farlo funzionare in memoria.

    Ecco un esempio che ho trovato sul web qui:

    http://www.finalwebsites.com/forums/...-file-download

    // place this code inside a php file and call it f.e. "download.php"
    $path = $_SERVER['DOCUMENT_ROOT'] . "/path2file/"; // change the path to fit your websites document structure
    $fullPath = $path . $_GET['download_file'];

    if ($fd = fopen ($fullPath, "r"))
    {
    $fsize = filesize($fullPath);
    $path_parts = pathinfo($fullPath);
    $ext = strtolower($path_parts["extension"]);

    switch ($ext)
    {
    case "pdf":
    header("Content-type: application/pdf"); // add here more headers for diff. extensions
    header("Content-Disposition: attachment; filename=\"".$path_parts["basename"]."\""); // use 'attachment' to force a download
    break;

    default:
    header("Content-type: application/octet-stream");
    header("Content-Disposition: filename=\"".$path_parts["basename"]."\"");
    break;
    }

    header("Content-length: $fsize");
    header("Cache-control: private"); //use this to open files directly

    while(!feof($fd))
    {
    $buffer = fread($fd, 2048);
    echo $buffer;
    }
    }
    fclose ($fd);
    exit;

    // example: place this kind of link into the document where the file download is offered:
    // <a href="download.php?download_file=some_file.pdf">Do wnload here</a>

    Cristiana,
    #OracleCloud.

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.