2011-01-20 6 views
6

Posso utilizzare URL esterni in readfile()?Lettura file PHP() dell'URL esterno

header('Content-type: application/pdf'); 
    header('Content-Transfer-Encoding: binary'); 
    header('Content-Disposition: inline; filename="'.$file.'" '); 
    //header('Content-Length: ' . filesize("http:...z/pub/".$file.'.pdf')); 
    @readfile("http://...z/pub/".$file.'.pdf'); 
+2

Provalo e/o [RTM] (http://php.net/readfile): "Un URL può essere utilizzato come nome file con questa funzione se i wrapper fopen sono stati abilitati." ;-) – netcoder

+0

Devo fare 'exec ("wget ​​$ url -O $ nomefile")'? – user583311

risposta

17

Il manuale di PHP su readfile stati:

Un URL può essere usato come un nome di file con questa funzione se l'fopen wrappers sono stati abilitati. Vedere fopen() per ulteriori dettagli su come specificare il nome del file. Vedere lo Supported Protocols and Wrappers per i collegamenti alle informazioni su quali abilità hanno i vari wrapper, note sul loro utilizzo e informazioni su eventuali variabili predefinite che possono fornire.

In alternativa è anche possibile utilizzare file_get_contents:

echo file_get_contents("http://...z/pub/".$file.'.pdf'); 
+0

In entrambe le soluzioni c'è qualche problema con filesize o qualcos'altro, perché non funziona. – user583311

+0

Rimosso -1 dopo la modifica;) – Mchl

+0

@ user583311 Quale sembra essere il problema? –

2

Sì, secondo la pagina readfile:

Un URL può essere utilizzato come un nome di file con questa funzione se la fopen_wrappers sono stati abilitati. Vedere fopen() per ulteriori dettagli su come specificare il nome file. Vedere la Supported Protocols and Wrappers per collegamenti a informazioni su ciò che capacità dei vari involucri hanno, indicazioni relative al loro utilizzo e informazioni su tutte le variabili predefinite che possono fornire .