Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

Download forzato file pdf

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

Download forzato file pdf

Messaggioda VascoJuve » ven giu 24, 2011 12:10 pm

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?
Avatar utente
VascoJuve
Aficionado
Aficionado
 
Messaggi: 104
Iscritto il: dom set 23, 2007 7:58 pm

Re: Download forzato file pdf

Messaggioda VascoJuve » lun giu 27, 2011 3:26 pm

Nessuno mi sa aiutare?
Avatar utente
VascoJuve
Aficionado
Aficionado
 
Messaggi: 104
Iscritto il: dom set 23, 2007 7:58 pm

Re: Download forzato file pdf

Messaggioda ste_95 » lun giu 27, 2011 4:09 pm

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;
«A volte è meglio tacere e sembrare stupidi che aprir bocca e togliere ogni dubbio.» Oscar Wilde
Avatar utente
ste_95
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 17271
Iscritto il: lun ago 06, 2007 11:19 am


Re: Download forzato file pdf

Messaggioda VascoJuve » mar giu 28, 2011 12:11 am

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
Avatar utente
VascoJuve
Aficionado
Aficionado
 
Messaggi: 104
Iscritto il: dom set 23, 2007 7:58 pm

Re: Download forzato file pdf

Messaggioda Andy94 » mar giu 28, 2011 6:40 am

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]
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: Download forzato file pdf

Messaggioda VascoJuve » mar giu 28, 2011 10:22 am

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?
Avatar utente
VascoJuve
Aficionado
Aficionado
 
Messaggi: 104
Iscritto il: dom set 23, 2007 7:58 pm

Re: Download forzato file pdf

Messaggioda VascoJuve » mar giu 28, 2011 10:57 am

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
Avatar utente
VascoJuve
Aficionado
Aficionado
 
Messaggi: 104
Iscritto il: dom set 23, 2007 7:58 pm

Re: Download forzato file pdf

Messaggioda Andy94 » mar giu 28, 2011 3:56 pm

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'])
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: Download forzato file pdf

Messaggioda VascoJuve » mar giu 28, 2011 4:42 pm

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
Avatar utente
VascoJuve
Aficionado
Aficionado
 
Messaggi: 104
Iscritto il: dom set 23, 2007 7:58 pm

Re: Download forzato file pdf

Messaggioda Andy94 » mar giu 28, 2011 4:46 pm

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. [^]
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: Download forzato file pdf

Messaggioda VascoJuve » mar giu 28, 2011 5:21 pm

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
Avatar utente
VascoJuve
Aficionado
Aficionado
 
Messaggi: 104
Iscritto il: dom set 23, 2007 7:58 pm

Re: Download forzato file pdf

Messaggioda VascoJuve » mar giu 28, 2011 6:06 pm

Se per esempio in locale dove devo mettere questo file download.php in EasyPHP???
Avatar utente
VascoJuve
Aficionado
Aficionado
 
Messaggi: 104
Iscritto il: dom set 23, 2007 7:58 pm

Re: Download forzato file pdf

Messaggioda VascoJuve » lun lug 04, 2011 10:08 am

Qualcuno che mi aiuti. HELPPPPPPPP
Avatar utente
VascoJuve
Aficionado
Aficionado
 
Messaggi: 104
Iscritto il: dom set 23, 2007 7:58 pm

Re: Download forzato file pdf

Messaggioda zenith » lun lug 04, 2011 10:22 am

Tutti i file del server locale con easyPHP vanno messi nella cartella "www", mentre se usi XAMPP in "htdocs" [^]
«Our philosophy at “New Scientist” is this: science is interesting, and if you don’t agree you can fu** off.»
Avatar utente
zenith
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 2778
Iscritto il: lun ago 13, 2007 3:31 pm
Località: Mola di Bari


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising