Devo realizzare la seguente applicazione:
un qualunque navigatore deve poter scaricare dei file pdf tramite un proxy.
Mi servirebbe, oltre che dei consigli su come fare, anche degli script php per realizzare ciò.
Grazie
Devo realizzare la seguente applicazione:
un qualunque navigatore deve poter scaricare dei file pdf tramite un proxy.
Mi servirebbe, oltre che dei consigli su come fare, anche degli script php per realizzare ciò.
Grazie
Mi spiego meglio.
Su un server ( che chiamo A ) ho dei file pdf.
Un cliente può scaricare questi file pdf ma non voglio che li scarichi direttamente dal server A ma voglio che li scarichi da un'altra macchina ( che chiamo B ).
Quindi in B devo avere uno "script php" che sia in grado di leggere sul server A il file pdf richiesto dal cliente e lo invii al cliente stesso. Il cliente non deve capire nulla e non deve poter possibilmente conoscere l'IP del server A.
Come faccio.
La butto lì... il client chiede a B il file, B prende da A il file e lo copia in una cartella temp, cache come vuoi te e lo passa al client, alle prossime richieste B chiede ad A se il file è aggiornato o meno, nel qual caso ne fa un refresh della copia locale, in caso contrario serve al client la sua copia locale...
Questo è quello che di solito fa un proxy![]()
![]()
..::Luca::..
» "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
» "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
[frasi random] - [Lucopedia] - [laFetta]
Avevo già pensato ad una soluzione del genere ma vorrei che B non copi il file pdf preso dal server A su una cartella tmp ma che direttamente ( man mano che lo legge da A ) lo invii al client.
Per realizzare la soluzione che mi avevi proposto hai qualche script pronto ?
certo che no![]()
allora:
b.php?file=pippo
adesso sìCodice PHP:
$a = "url_di_A";
$b = "url_di_B";// cartella tmp
$f=$_GET["file"];
copy($a.$f,$b.$f);
// file al client
unlink($b.$f);
inutile dire che devi avere da manuale abilitati gli fopen wrappers
..::Luca::..
» "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
» "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
[frasi random] - [Lucopedia] - [laFetta]
Ti puoi spiegare meglio ?
Questo codice ( grazie mille per l'aiuto ) deve andare nella macchina B ( cioè nel proxy ) ?.
Puoi farmi un esempio con dati reali ?
ma triple h sarebbe quel tizio del wrestling?
nel caso ti saluta mio fratello..![]()
b.php è il nome del file del mio scriptino che va piazzato sulla macchina B per smistare le richieste, in pratica un demone proxy...
ora il tizio fa una richesta del tipo
http://url_B/b.php?file=doc.pdf
da qui in poi lavora lo script php che recupera il file se lo passa sul server e lo manda al client (questo devi vedere tu come è la riga commentata..)
infine il proxy tediato da file su disco elimina il file (lo hai scelto tu ma nn mi sembra una cosa buona [1000 richieste sono 1000 trasferimenti => 1000*n ritardi di nodo con n numero di nodi tra i server] e tutto è ok per file da un k ma come la metti nome già se arrivi ad un paio di mega?)
![]()
..::Luca::..
» "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
» "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
[frasi random] - [Lucopedia] - [laFetta]
Grazie mille. Adesso provo.
Mi hai convinto che non conviene cancellarlo ma effettuare un aggiornamento nel caso in cui il file sul server A è stato modificato.
Ma a come effettuare l'aggiornamento ci penserò dopo.
Grazie. Vado a provare lo script.
PS. Triple h è un lottare di wrestling.
w rey....![]()
per l'aggiornamento devi semplicemente chiedere ad A l'ultimo aggiornamento del file in oggetto, se scopri che è più recente del tuo lo copi altrimenti salti semplicemente l'istruzione copy (inutile dire devi eliminare anche l'unlink definitivamente):
Codice PHP:
$a = "url_di_A";
$b = "url_di_B";// cartella tmp
$f=$_GET["file"];
if (->file più recente su A<-)
copy($a.$f,$b.$f);
// file al client
..::Luca::..
» "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
» "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
[frasi random] - [Lucopedia] - [laFetta]
Ok.
Sai qual'è l'istruzione per controllare se il file è più recente ?
Se mi risp W REY allora ti dico W BATISTA !!