Hallo,
Ik heb het volgende script om pdf's te kunnen downloaden om het aantal downloads te kunnen tellen.
Dat werkt goed in Google Chrome, maar niet altijd in IE 8
Soms werkt de download wel (283kb) en opent de PDF normaal, soms krijg ik maar 243kb door en krijg ik de melding dat de PDF beschadigd is. Ik heb al 100 verschillende combinaties van headers (ook uit andere topics) gebruikt: content-type als application/pdf, als application/force-download, als application/octet-stream.
Content-length zowel met strlen($data) als met filesize() geprobeerd.
Memory limits aangepast, execution time aangepast, fopen($file,"r") ipv "rb"
Als ik de gelezen data opnieuw wegschrijf op de server als een nieuwe pdf en die met ftp download, dan gaat het wel goed en het aantal uitgelezen bytes ($fs en strlen($data)) klopt ook, terwijl de download nog mis gaat....
Heeft iemand een oplossing? alvast bedankt!
Ik heb het volgende script om pdf's te kunnen downloaden om het aantal downloads te kunnen tellen.
Dat werkt goed in Google Chrome, maar niet altijd in IE 8
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| $fs=filesize($path.$file); $handle=fopen($path.$file,"rb"); $data=fread($handle,$fs); fclose($handle); header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // some day in the past (te maken met caching) header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); //te maken met caching header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Content-Description: File Transfer'); header("Content-Type: application/octet-stream"); header('Content-Disposition: attachment; filename='.$file); header('Content-Transfer-Encoding: binary'); header('Content-Length: '.strlen($data)); echo($data); |
Soms werkt de download wel (283kb) en opent de PDF normaal, soms krijg ik maar 243kb door en krijg ik de melding dat de PDF beschadigd is. Ik heb al 100 verschillende combinaties van headers (ook uit andere topics) gebruikt: content-type als application/pdf, als application/force-download, als application/octet-stream.
Content-length zowel met strlen($data) als met filesize() geprobeerd.
Memory limits aangepast, execution time aangepast, fopen($file,"r") ipv "rb"
Als ik de gelezen data opnieuw wegschrijf op de server als een nieuwe pdf en die met ftp download, dan gaat het wel goed en het aantal uitgelezen bytes ($fs en strlen($data)) klopt ook, terwijl de download nog mis gaat....
Heeft iemand een oplossing? alvast bedankt!