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

    [Php] Download file di varie estensioni

    Salve,

    ho la necessità di dover consentire agli utenti che si collegano ad un sito di poter far scaricare in locale dei file presenti come allegati sul server. Ho tentato attraverso il codice:

    ----------------------------
    switch ($estensione):
    case 'jpg':
    $ctype = "Content-Type: image/jpeg";
    break;
    case 'gif':
    $ctype = "Content-Type: image/gif";
    break;
    case 'png':
    $ctype = "Content-Type: image/x-png";
    break;
    case 'tiff':
    $ctype = "Content-Type: image/tiff";
    break;
    case 'html':
    $ctype = "Content-Type: text/html";
    break;
    case 'rtf':
    $ctype = "Content-Type: application/rtf";
    break;
    case 'pdf':
    $ctype = "Content-Type: application/x-pdf";
    break;
    case 'ppt':
    $ctype = "Content-Type: application/vnd.ms-powerpoint";
    break;
    case 'xls':
    $ctype = "Content-Type: application/vnd.ms-excel";
    break;
    case 'doc':
    $ctype = "Content-Type: application/msword";
    break;
    case 'zip':
    $ctype = "Content-Type: application/x-zip";
    break;
    case 'swf':
    $ctype = "Content-Type: application/x-shockwave-flash";
    break;
    endswitch;

    $filename= $nome_file . "." . $estensione;
    header ($ctype);
    header ("Content-Disposition: attachment; filename=$filename");
    $percorso = "../mia_cartella/" . $filename;
    include($percorso);
    ---------------------

    Il codice sembrerebbe funzionare per i file immagine, per i filmati flash e per le applicazioni MS. Purtroppo i file pdf e zip sembrerebbero deteriorarsi con il download, non riuscendo ad aprirli dopo la procedura. Sarei grato a tutti coloro che potessero darmi qualche indicazione su come consentire all'utente di potre scaricare i file anche di tal tipo. Grazie anticipatamente.

  2. #2
    ma se usi readfile( $percorso );al posto di

    include($percorso);


    ?
    DYNAMIC+ [ E-mail ]

    Secondo me non si può fare!

  3. #3
    Salve,

    ti ringrazio per la risposta. Provo speranzoso. Un saluto.

  4. #4
    Salve ancora,

    risolto il problema; per forzare il download di un file di tipo generale è possibile utilizzare il seguente codice (fonte php.net):

    ---------
    header ("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header ("Content-Type: application/octet-stream");
    header ("Content-Length: " . filesize($percorso));
    header ("Content-Disposition: attachment; filename=$filename");
    readfile($percorso);
    ---------

    In particolare, risolve i problemi di tilt che potrebbero dare file pdf. Un saluto. Grazie.

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.