Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043

    come forzare il download anzichè aprire il file sul browser?

    ciao,
    sapete se con php è possibile forzare il download dei file anzichè aprirli sul browser?

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    Ho provato a fare così, me lo scarica, ma dopo averlo scaricato non me lo apre:


    Codice PHP:
    <?php
    // definisco una variabile con il percorso alla cartella
    // in cui sono archiviati i file
    $dir $_GET['absolute_path2'];

    // Recupero il nome del file dalla querystring
    // e lo accodo al percorso della cartella del download
    $file $dir $_GET['filename'];

    // verifico che il file esista
    if(!file)
    {
      
    // se non esiste chiudo e stampo un errore
      
    die("Il file non esiste!");
    }else{
      
    // Se il file esiste...
      // Imposto gli header della pagina per forzare il download del file
      
    header("Cache-Control: public");
      
    header("Content-Description: File Transfer");
      
    header("Content-Disposition: attachment; filename= " $file);
      
    header("Content-Transfer-Encoding: binary");
      
    // Leggo il contenuto del file
      
    readfile($file);
    }
    ?>

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    Ne ho provati 10 di script, neanche uno funziona...

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    hai provato anche questo?

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    Questo, no. Comunque ho risolto grazie.

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    Noooooo, credevo di aver risolto, sembrava funzionasse invece ad esempio il file di word me lo corrompe, cioè me lo apre ma lo modifica con tutti caratteri strani.

    questo è il codice:

    Codice PHP:
    $nomefile $_GET['filename'];

    header("Content-type: Application/octet-stream");
    header("Content-Disposition: attachment; filename=".$nomefile);
    header("Content-Description: Download scheda");
    $file_name="../filesharing_files/".$nomefile;
    readfile($file_name); 

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    Originariamente inviato da clasku
    hai provato anche questo?
    Ora sto provando quello che mi hai segnalato ma non trovo dove inserire $nomefile

    perchè se prendo il nome del file $nomefile = $_GET['filename']; poi come lo collego a quello script?

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    Chi mi darebbe una mano perfavore?

    Mi scarica file corrotti



  9. #9
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    vuoi proprio reinventare la ruota?
    Codice PHP:
    switch ($ext) { 
          case 
    "pdf"$ctype="application/pdf"; break; 
    un pezzo del codice che trovi sul manuale e che ti ho linkato prima: ti assicuro che con i pdf funziona

    dacci un occhio, puoi usarla con facilità o modificarla come preferisci, ma rispetta le indicazioni che ci sono, soprattutto per i corretti header a seconda del file

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    Ci ho provato ad utilizzare quel codice e ti assicuro che non funziona.
    Questo codice l'ho inserito nel file download.php e l'ho pubblicato dentro la directory FILE
    Per richiamarlo uso questo link <?=$rowfile2['file']?>



    Codice PHP:
    $nomefile $_GET['filename'];





    function 
    downloadFile$nomefile ){

      
    // Must be fresh start
      
    if( headers_sent() )
        die(
    'Headers Sent');

      
    // Required for some browsers
      
    if(ini_get('zlib.output_compression'))
        
    ini_set('zlib.output_compression''Off');

      
    // File Exists?
      
    if( file_exists($nomefile) ){
       
        
    // Parse Info / Get Extension
        
    $fsize filesize($nomefile);
        
    $path_parts pathinfo($nomefile);
        
    $ext strtolower($path_parts["extension"]);
       
        
    // Determine Content Type
        
    switch ($ext) {
          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;
          default: 
    $ctype="application/force-download";
        }

        
    header("Pragma: public"); // required
        
    header("Expires: 0");
        
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
        
    header("Cache-Control: private",false); // required for certain browsers
        
    header("Content-Type: $ctype");
        
    header("Content-Disposition: attachment; filename=\"".basename($nomefile)."\";" );
        
    header("Content-Transfer-Encoding: binary");
        
    header("Content-Length: ".$fsize);
        
    ob_clean();
        
    flush();
        
    readfile$nomefile );

      } else
        die(
    'File Not Found');



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.