Pagina 1 di 1

Download forzato file pdf

MessaggioInviato: ven giu 24, 2011 12:10 pm
da VascoJuve
Ciao a tutti,
non so se è questa la sezione adatta. Ho un sito e nel momento in cui apro un file pdf vorrei che esce la finestrella "apri" "Salva" "null" (mi sembra che si chiama save as) e non che mi apra il file.
Ho guardato un po' in giro e ci sono un po' di cose in php. Io purtroppo nn lo conosco ma conosco html. Ho provato a fare un prova. Guardate se va bene:
Codice: Seleziona tutto
<html>
<head>
</head>
<body>
<?php
// definisco una variabile con il percorso alla cartella
// in cui sono archiviati i file
$dir = "C:/";
// 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);
}
?>

<a href='C:/Brochure Illuminazione a Led.pdf'>
<font color="#006991"><strong>Download brochure</strong></font></a>

</body>
</html>


Il problema che mi apre la brochure sul browser come sempre. Cos aho sbagliato a fare?

Re: Download forzato file pdf

MessaggioInviato: lun giu 27, 2011 3:26 pm
da VascoJuve
Nessuno mi sa aiutare?

Re: Download forzato file pdf

MessaggioInviato: lun giu 27, 2011 4:09 pm
da ste_95
Ti posso dire che questo è un prototipo funzionante come vorresti [;)]

Codice: Seleziona tutto
header("Content-Type: application/octet-stream");
header("Content-Length: " . $size);
header("Content-Transfer-Encoding: binary");
header("Content-Disposition: attachment; filename=" . $_GET['filename']);
echo $read;

Re: Download forzato file pdf

MessaggioInviato: mar giu 28, 2011 12:11 am
da VascoJuve
ste_95 ha scritto:Ti posso dire che questo è un prototipo funzionante come vorresti [;)]

Codice: Seleziona tutto
header("Content-Type: application/octet-stream");
header("Content-Length: " . $size);
header("Content-Transfer-Encoding: binary");
header("Content-Disposition: attachment; filename=" . $_GET['filename']);
echo $read;


E che vuoi dire? non ho capito

Re: Download forzato file pdf

MessaggioInviato: mar giu 28, 2011 6:40 am
da Andy94
Finché continui ad indirizzare il collegamento direttamente verso la risorsa, il download avverrà sempre secondo le direttive impostate dal browser.

Devi far passare il download da una pagina apposita, tipo download.php, che contenga un riferimento al file (anche in get, ma bisogna fare molti controlli addizionali sul file richiamato). Dentro a questo file inserisci il codice che ti ha dato ste_95 per forzare il download del documento.
[ciao]

Re: Download forzato file pdf

MessaggioInviato: mar giu 28, 2011 10:22 am
da VascoJuve
Andy94 ha scritto:Finché continui ad indirizzare il collegamento direttamente verso la risorsa, il download avverrà sempre secondo le direttive impostate dal browser.

Devi far passare il download da una pagina apposita, tipo download.php, che contenga un riferimento al file (anche in get, ma bisogna fare molti controlli addizionali sul file richiamato). Dentro a questo file inserisci il codice che ti ha dato ste_95 per forzare il download del documento.
[ciao]


Non sono pratico di php. Mi stai dicendo ho un file .html dove metto un riferimento ad un altro file download.php il quale deve fare il download forzato al file pdf? è così? il riferimento in php si fa allo stesso modo dell'html?

Re: Download forzato file pdf

MessaggioInviato: mar giu 28, 2011 10:57 am
da VascoJuve
Ho fatto mettendo nel file download.php il riferimento <a href='C:/Brochure.pdf'></a>
ma quando vado ad aprire il file html mi fa in download forzato del file dowload.php.
Per favore indicatevi tutto il codice da fare che sto impazzendo

Re: Download forzato file pdf

MessaggioInviato: mar giu 28, 2011 3:56 pm
da Andy94
Il collegamento deve essere qualcosa tipo:
<a href="download.php?filename=C:\Brochure.pdf">file</a>

E nel file download.php metti il codice che ti ha fornito ste_95, correggendo $size con filesize($_GET['filename'])

Re: Download forzato file pdf

MessaggioInviato: mar giu 28, 2011 4:42 pm
da VascoJuve
Stiamo punto ed accapo. Ho provato con anche altri codici su internet e mi fa sempre il download forzato del file php e non del file pdf
Ora mi è venuto un dubbio. Io sto provando a fare queste cose in locale ma non è che devo mettere in remoto e mi fa scaricare il file pdf?

Vi ripeto il codice che utilizzo e vedete se va bene. provate anche voi a fare la stessa cosa che ho fatto io
Ho fatto un file scarica.html in questo:
Codice: Seleziona tutto
<html>
<head>
</head>
<body>

<a href="prova.php?filename=Brochure.pdf">
<font color="#006991"><strong>Download brochure</strong></font></a>

</body>
</html>

Nel filename ho provato a mettere anche C:/Brochure.pdf oppure C:\Brochure.pdf ma non cambia niente

Mentre il file prova.php è fatto così

Codice: Seleziona tutto
<?php
header("Content-Type: application/octet-stream");
header("Content-Length: " . $size con filesize($_GET['filename'])  );
header("Content-Transfer-Encoding: binary");
header("Content-Disposition: attachment; filename=" . $_GET['filename']);
echo $read;
?>


Per favore aiutatemi che sto impazzendo da due giorni con questo codice. Aspetto una vostra risposta prima possibile. Grazie

Re: Download forzato file pdf

MessaggioInviato: mar giu 28, 2011 4:46 pm
da Andy94
Ma hai installato un server con Apache e PHP in locale?
Altrimenti è ovvio che non ti può funzionare!

Le soluzioni a questo punto son due: o lo installi (trovi l'articolo sul portale), o fai tutto da remoto. [^]

Re: Download forzato file pdf

MessaggioInviato: mar giu 28, 2011 5:21 pm
da VascoJuve
Ho provato in remoto ma il problema non so dove mettere il file download.php per essere riconosciutio dall'href. Mi potete dare un aiuto?
Il sito è www.eulux.it ed è stato fatto in cmsmadesimple

Re: Download forzato file pdf

MessaggioInviato: mar giu 28, 2011 6:06 pm
da VascoJuve
Se per esempio in locale dove devo mettere questo file download.php in EasyPHP???

Re: Download forzato file pdf

MessaggioInviato: lun lug 04, 2011 10:08 am
da VascoJuve
Qualcuno che mi aiuti. HELPPPPPPPP

Re: Download forzato file pdf

MessaggioInviato: lun lug 04, 2011 10:22 am
da zenith
Tutti i file del server locale con easyPHP vanno messi nella cartella "www", mentre se usi XAMPP in "htdocs" [^]