Visualizzazione dei risultati da 1 a 5 su 5

Discussione: download header file

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    343

    download header file

    salve ragazzi ho una domanda da porvi: come mai qnd faccio il download dei file alcuni vengono scaricati correttamente (txt,xml,pdf), mentre altri tipo(zip,ppt) mi compare la scritta impossibile aprire il file?

    Il codice che utilizzo è il seguente:

    Codice PHP:
    $file $_REQUEST["nome_file"];
    $id_materiale $_REQUEST["idfile"];

      
    // definisco una variabile con il percorso alla cartella
      // in cui sono archiviati i file
      
    $dir "materiale/";

        
    header("Cache-Control: public");
        
    header("Content-type: Application/octet-stream");
          
    header("Content-Disposition: attachment; filename= " $file);
          
    header("Content-Description: Download PHP");
        
    header("Content-Transfer-Encoding: binary");
       
          
    // Leggo il contenuto del file
          
    readfile($dir.$file); 
    tramite la pagina.php gli passo il nomefile e l'id

    Codice PHP:
    [url="download.php?nome_file=<?=$file["]&idfile=<?=$file["id_materiale"]?>" target="_blank"><?=$file["file_t"]?>[/url]

  2. #2
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    prova questo...preso dal manuale di PHP: http://php.net/manual/en/function.readfile.php
    codice:
    <?php
    $file = 'monkey.gif';
    
    if (file_exists($file)) {
        header('Content-Description: File Transfer');
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename='.basename($file));
        header('Content-Transfer-Encoding: binary');
        header('Expires: 0');
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Pragma: public');
        header('Content-Length: ' . filesize($file));
        ob_clean();
        flush();
        readfile($file);
        exit;
    }
    ?>

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    343
    grazie per l'interessamento ma non funziona...si apre una pagina nuova di mozilla e non mi segnala nessun errore

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    343
    raga con questo script riesco ad effettuare il download per qualsiasi file...escluso zip!!!
    qualcuno ha mai effettuato download di file zip?
    Codice PHP:
    $file=$_REQUEST["nome_file"];
        
    $cartella $_SERVER["DOCUMENT_ROOT"].CARTELLA_SOFTWARE."/materiale/";
        
    $percorso_file=$cartella.$file;
        
    $dimensione_file=filesize($percorso_file);

        
    $len filesize($percorso_file);
        
    $filename basename($file);
        
    $file_extension strtolower(substr(strrchr($filename,"."),1));


        switch( 
    $file_extension ) {
              case 
    "pdf"$ctype="application/pdf"; break;
          case 
    "exe"$ctype="application/octet-stream"; break;
          case 
    "zip"$ctype="application/zip"; break;
          case 
    "doc"$ctype="application/msword"; break;
          case 
    "xls"$ctype="application/vnd.ms-excel"; break;
          case 
    "ppt"$ctype="application/vnd.ms-powerpoint"; break;
          case 
    "gif"$ctype="image/gif"; break;
          case 
    "png"$ctype="image/png"; break;
          case 
    "jpeg":
          case 
    "jpg"$ctype="image/jpg"; break;
          case 
    "mp3"$ctype="audio/mpeg"; break;
          case 
    "wav"$ctype="audio/x-wav"; break;
          case 
    "mpeg":
          case 
    "mpg":
          case 
    "mpe"$ctype="video/mpeg"; break;
          case 
    "mov"$ctype="video/quicktime"; break;
          case 
    "avi"$ctype="video/x-msvideo"; break;

          case 
    "php":
          case 
    "htm":
          case 
    "html":
          case 
    "txt"$ctype="text/txt"; break;

          default: 
    $ctype="application/force-download";
        }

        
    ob_end_clean();
        
        
    header("Pragma: public");
        
    header("Expires: 0");
        
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
        
    header("Cache-Control: public");
        
    header("Content-Description: File Transfer");
       

        
    header("Content-Type: $ctype");

        
    $header="Content-Disposition: attachment; filename=".$filename.";";
        
    header($header );
        
    header("Content-Transfer-Encoding: binary");
        
    header("Content-Length: ".$len);
        @
    readfile($dir.$file);
        exit; 

  5. #5
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    qui c'è un problema simile, sembra però solo con IE 7.
    A te non funziona con nessun tipo di browser?
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

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.