Download file

  • Creatore Discussione Creatore Discussione egialma
  • Data di inizio Data di inizio

egialma

Nuovo Utente
3 Ott 2012
29
0
0
Ciao a tutti, ho un piccolo problema, dovrei far scaricare agli utenti del sito dei file, in vari formati, doc, xls o pdf.

Ho scritto questo codice leggendo un po' qua, un po' la, in internet ma non funziona.

Il codice della pagina è tutto qui.
Il nome del file, in questo caso excel, è passato dal parametro Accname mediante un link situato in un'altra pagina

href=Accessdownload.php?Accname=".$Accname.

Il nome passato è corretto, ho controllato più volte

La cartella dove si trovano i file è Access.

PHP:
     <?php
        $Accname = $_GET['Accname'];
        $file = "Access/".$Accname;
	$files = $base_url."EFH/db/searchlocation/location/Access/".$Accname;
	if(!file_exists($files)) {
		$bytes = filesize($file);
		header("Content-type: Application/ms-excel");
		header('Pragma: public');
		header("Content-Disposition: attachment; filename = ".$Accname);
        }else{
		echo "file non trovato";
	}
     ?>

Analizzando il codice non riesco a capire come faccio a far capire al sistema quale file deve scaricare, il sistema mi scarica un file con il nome corretto, ma mi da errore dicendo che il file scaricato è diverso da quello riconosciuto dal sistema se forzo l'apertura il file è vuoto, mi potete aiutare?

Altra cosa che non capisco:

queste due istruzioni

if(!file_exists($files)) e $bytes = filesize($file)

puntano alla stessa cartella, uno con indirizzo relativo, l'altro con indirizzo assoluto, ma se inverto il tipo di percorso cioè

if(!file_exists($file)) e $bytes = filesize($files)

o metto ad entrambi lo stesso tipo

if(!file_exists($file)) e $bytes = filesize($file)


o

if(!file_exists($files)) e $bytes = filesize($files)

, non funziona.
In un caso mi dice che il file non esiste e l'altro non mi da la dimensione del file...


Grazie
 
Nefyt, ti ringrazio per la risposta, ma onestamente ti devo dire che non ho capito nulla.

Da una pagina chiamata "detail.php" richiamo, tramite link la pagina download.php, situata nella stessa directory.

Dalla pagina detail passo il nome del file "Dati.xls" tramite la variabile Accname=".$Accname."

Nella pagina download recupero tramite get la variabile Accname e gli aggiungo il path, "Access/".$Accname, il file da scaricare si trova in una sotto cartella, rispetto alla pagina download, denominata Access.

Ho fatto lo stessa cosa, più o meno, per visualizzare su browser un file PDF e funziona perfettamente, in questo caso tento di scaricare un file XLS e non funziona.

Mi potresti dare maggiori informazioni?

Riporto di seguito lo stesso codice scritto precedentemente, poiché non ho capito come modificarlo.

PHP:
  <?php 
        $Accname = $_GET['Accname']; 
        $file = "Access/".$Accname; 
    $files = $base_url."EFH/db/searchlocation/location/Access/".$Accname; 
    if(!file_exists($files)) { 
        $bytes = filesize($file); 
        header("Content-type: Application/ms-excel"); 
        header('Pragma: public'); 
        header("Content-Disposition: attachment; filename = ".$Accname); 
        }else{ 
        echo "file non trovato"; 
    } 
     ?>

Grazie ancora
 

Discussioni simili