Visualizzazione dei risultati da 1 a 10 su 12

Visualizzazione discussione

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    17

    Download file excel da server condiviso con php

    Ciao a tutti !

    Ho la necessità di far scaricare agli utenti un file excel posto in un server condiviso.
    Ho scritto il codice e non riesco a capire perchè non funziona.

    Ho provato a cambiare posizione del file da server condiviso a quello in utilizzo e funziona perfettamente. Questo mi ha fatto pensare che la variabile da me dichiarata $dir sia sbagliata.

    Codice PHP:
    //impostiamo la cartella in cui sono presenti i file per il download   
    $dir "\\10.x.x.x\cartelle restanti";    
    //riceviamo via GET il file da scaricare  la funzione basename la applichiamo al fine di evitare che   utenti maliziosi possano eseguire percorsi nell'URL       
    $file = isset($_GET['file']) ? basename( (string) $_GET['file'] ) : '';    
     
    $path1 $dir $file;
    // eseguiamo alcuni controlli preventivi    
    if($file=='')
    {    exit(
    'Nessun file indicato');      }
    else 
    if(!
    is_file($path1))
    {echo 
    $path1;    exit('Il file non esiste');        
    }else if(!
    is_readable($path1))
    {       exit(
    'Il file non ha i permessi per essere scaricato');        }
    // otteniamo alcune info sul file    
     
    $info pathinfo$path1 );
    $extension $info['extension'];
     
    // estensione    
    $size filesize($path1); 
    // dimensione in byte   
     
    $time_file date'r'filemtime$path1 ) );
     
    // time ultima modifica    
    // inviamo gli opportuni headers    
     
    header('Content-Type: application/octet-stream'); 
    header('Content-Disposition: attachment; filename="'basename($path1) .'"');    
     
    header('Content-Transfer-Encoding: binary');    
    header('Content-Length: ' $size);
    header('Last-Modified: ' $time_file);    
    header('Expires: 0');    
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');    
    header('Pragma: public');       

     
    // eliminiamo eventuale output inviato   
    ob_clean();    
    flush();       
     
    // leggiamo il file inviamo l'output @readfile($path1) or die('SERVER ERROR!');   

    exit; 

    Per vedere cosa mi restituiva $path1 l'ho visualizzato e ho notato che il doppio \\ non viene visualizzato correttamente , ma solo con una \.
    Ultima modifica di veciaz; 09-07-2014 a 10:31

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.