Op m'n website heb ik een eigen gemaakt magazine die ik in PDF laat downloaden. Aangezien de PDF 10MB groot is en deze redelijk veel gedownload wordt wil ik hem via een mirrorscript willekeurig via andere servers laten downloaden.
Een header location gaat niet op want ik wil de bezoeker niet van mijn pagina weg sturen. Ik wil dus direct een download dialog laten openen.
Nu heb ik het probleem dat de download niet goed gaat, 500kb dummy PDF ipv het volledige 10MB PDf bestand.
Het mirror path (extern http://<mirror>/magazine.pdf) is correct als ik ze echo — #10 in downloadMag();
Het gaat om onderstaande code (wel wat uitgekleed om leesbaar te houden).
php.ini
Om het bestand te downloaden:
Een header location gaat niet op want ik wil de bezoeker niet van mijn pagina weg sturen. Ik wil dus direct een download dialog laten openen.
Nu heb ik het probleem dat de download niet goed gaat, 500kb dummy PDF ipv het volledige 10MB PDf bestand.
Het mirror path (extern http://<mirror>/magazine.pdf) is correct als ik ze echo — #10 in downloadMag();
Het gaat om onderstaande code (wel wat uitgekleed om leesbaar te houden).
php.ini
code:
1
2
| allow_url_fopen = On allow_url_include = On |
Om het bestand te downloaden:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| /** * $mirrorId is een random getal tussen 1 en x-aantal mirrors * DOWNLOAD FILE */ function downloadMag($mirrorId){ $mirrorId = mysql_escape_string($mirrorId); $getFile = mysql_query("SELECT * FROM mag_mirror WHERE mag_mirror.id = ".$mirrorId.""); $getFileResult = mysql_fetch_array($getFile, MYSQL_ASSOC); $file = $getFileResult['url']; //echo $file; header('Content-type: application/pdf'); header('Content-Description: File Transfer'); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); //header('Content-Disposition: attachment; filename="ModernWarfare247-01-June09-mirror'.$mirrorId.'.pdf"'); //header("Content-Length: " . filesize($file)); // what file to download: readfile($file); } |
[ Voor 21% gewijzigd door Creepy op 21-06-2009 10:33 . Reden: ontspammed ;) ]