Autore Topic: Download file .pdf  (Letto 3209 volte)

Offline TheSamu

  • Nuovo arrivato
  • *
  • Post: 49
  • Sesso: Maschio
    • Mostra profilo
Download file .pdf
« il: 13 Feb 2012, 17:04:44 »
Rieccomi....di nuovo! ;D

Ho avuto la necessità di fare l'update di un file pdf, ed ecco il problema!

Avevo calcolato di fare l'update di soli file immagine e quindi facendo l'update di un pdf oltre a non farmii vedere nessun'anteprima  non posso nemmeno scaricarlo

che codice posso usare per visualizzare un icona standard e scaricare il file
grazie in anticipo

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 7998
  • Sesso: Maschio
    • Mostra profilo
Re:Download file .pdf
« Risposta #1 il: 15 Feb 2012, 16:49:04 »
occorre uno script php che verifica il tipo di estensione del file ed in caso di pdf o altro mostra un'icona del tipo di file con il link per il download.
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org/joomla3/

Offline TheSamu

  • Nuovo arrivato
  • *
  • Post: 49
  • Sesso: Maschio
    • Mostra profilo
Re:Download file .pdf
« Risposta #2 il: 01 Mar 2012, 18:40:19 »
modifico la risposta...
utilizzando
Codice: [Seleziona]
<a href="images/risorse/{ris_file_carta_identita}">Download file</aperò rimane permanente la scritta "download file" anche quando il file non esiste

ho utilizzando un modo "alternatvo" e quasi separato da joomla

nel code di chronoform ho inserito:
Codice: [Seleziona]
<a href="downloadidentita.phpfile={ris_file_carta_identita}">Download file</a>
mentre nel file downloadidentita.php ho inserito
Codice: [Seleziona]
<?php
// definisco una variabile con il percorso alla cartella
// in cui sono archiviati i file
$dir "images/risorse/";

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

// 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);
}
?>



problema il link aggancia una pagina che non esiste
Codice: [Seleziona]
http://www.nomedelsito.it/directory/downloadidentita.phpfile=20120301185331_invoice_33ZMXSQ8UB7A51O2C5IX35PF9198H8.pdf
idee su cosa devo correggere?
« Ultima modifica: 01 Mar 2012, 18:59:24 da TheSamu »

Offline 56francesco

  • Fuori controllo
  • *
  • Post: 29585
  • Sesso: Maschio
    • Mostra profilo
Re:Download file .pdf
« Risposta #3 il: 01 Mar 2012, 18:54:49 »
non ti fa vedere il file ma ci sta..

quindi se il suo indirizzo completo di nome ed estensione lo scrivi  poi lo scarichi, 
molto più difficile da pensare che da fare.
(uso XP perchè win98 non si installa) 
PS: non sono un dipendente dello sbonzor quindi è necessario un "per favore" alla richiesta e un "grazie" alla risposta, sempre! PPS: non scrivo mai per primo in MP, in caso contrario chiedimi una conferma, Grazie.

Offline TheSamu

  • Nuovo arrivato
  • *
  • Post: 49
  • Sesso: Maschio
    • Mostra profilo
Re:Download file .pdf
« Risposta #4 il: 01 Mar 2012, 19:25:38 »
mi sono accorto di diversi errori e ho modificato in questo modo
il puntamento corretto che ho inserito nel code di chronoform
Codice: [Seleziona]
<a href="downloadidentita.php?filename={ris_file_carta_identita}">Download file con filename</a><br>
funziona anche in questo modo
Codice: [Seleziona]
<a href="downloadidentita.php?{ris_file_carta_identita}">Download file con filename</a><br>

il problema è che ora il download parte...ma invece del file pdf o dell'immagine mi scarica una pagina html che viene rinominata come il puntamento in questo caso images_risorse_

l'url che mi da il collegamento e' il seguente:
Codice: [Seleziona]
senza ?filename
http://www.nomedelsito.it/directory/downloadidentita.php?file_pdf.pdf
con ?filename
http://www.nomedelsito.it/directory/downloadidentita.php?filename=file_pdf.pdf



Offline TheSamu

  • Nuovo arrivato
  • *
  • Post: 49
  • Sesso: Maschio
    • Mostra profilo
Re:Download file .pdf
« Risposta #5 il: 01 Mar 2012, 19:48:42 »
ho modificato ulteriormente il file downloadidentita.php in questo modo

Codice: [Seleziona]
<?php
// definisco una variabile con il percorso alla cartella
// in cui sono archiviati i file
$dir "/images/risorse/";

// 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);
}
?>


la differenza tra prima e ora e' che prima scaricava un file html chiamato come la directorì sostituendo / con _
Codice: [Seleziona]
images_risorse.html

ora mi scarica sempre un file html ma aggiunge il nome del file
Codice: [Seleziona]
images_risorse_file_pdf.html

a questo punto non so' come risolvere il problema


Offline TheSamu

  • Nuovo arrivato
  • *
  • Post: 49
  • Sesso: Maschio
    • Mostra profilo
Re:Download file .pdf
« Risposta #6 il: 01 Mar 2012, 20:37:40 »
Ho mezzo una pezza...visto che il problema era il puntamento ho sistemato in questo modo:
ho messo il file downloadidentita.php in directory/images/risorse

nel file downloaddidentita.php ho rimosso in $dir la patch

Codice: [Seleziona]
$dir = "";potevo anche commentarla, ma lo lascio così comè...caso mai in futuro mi venisse l'illuminazione su come sistemarlo

mentre nel codice del form ho scritto:
Codice: [Seleziona]
<a href="/directory/images/risorse/downloadidentita.php?filename={ris_file_carta_identita}">Scarica file</a><br>
a questo punto mi scarica il file nel formato corretto

rimangono ancora dei problemi quindi non so' se mettere risolto
cioè: se il file viene cancellato manualmente il puntamento nel form rimane e cliccandoci scarica un file cancellato (joomla fà miracoli)
se invece il file ha spazi non viene scaricato quindi o devo trovare un modo di far rinominare i spazi con _ o devo scrivere tra i tips di non mettere spazi

metto risolto?

Offline TheSamu

  • Nuovo arrivato
  • *
  • Post: 49
  • Sesso: Maschio
    • Mostra profilo
Re:Download file .pdf
« Risposta #7 il: 01 Mar 2012, 21:02:40 »
non sono molto pratico in php ma quel file non riuscirei a metterlo nel codice? perché scritto così è solamente un mega paiativo...
 ;D ;D ;D se il file non esiste mi scarica {il_nome_del_feld}  ;D ;D ;D

 

Host

Torna su