Hoi! Ik heb voor een niet nader te noemen webwinkel een downloadscript gebouwd, waarmee
gratis trailers kunnen worden gedownload. Helaas stuur php maar een gedeelte van het bestand
door, al geeft de browser ( IE / Firefox ) wel door dat alles is gedownload.
Ik heb werkelijk geen idee waar dit aan kan liggen, zit er een limiet op door te geven bestanden via php?
Hieronder mijn script
Het gedownloadde bestand is overigens telkens even groot, ongeacht de grootte van het te downloaden bestand.
gratis trailers kunnen worden gedownload. Helaas stuur php maar een gedeelte van het bestand
door, al geeft de browser ( IE / Firefox ) wel door dat alles is gedownload.
Ik heb werkelijk geen idee waar dit aan kan liggen, zit er een limiet op door te geven bestanden via php?
Hieronder mijn script
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
| <?php session_start(); session_cache_limiter('private'); // Maakt het mogelijk ook via IE te downloaden if ( $_SESSION['Login'] == "1" && $_SESSION['Ses_site'] == 'gtwebshop' ) { if(!isset($_REQUEST['trailer']) || empty($_REQUEST['trailer'])){ // Controleert of er een file word opgevraagd echo "Actie niet toegestaan"; exit(); } $file = substr($_REQUEST['trailer'], strrpos($_REQUEST['trailer'],"/")+1); $file = htmlspecialchars($file); $folder = realpath('promo'); if(!file_exists($folder.'/'.$file)){ echo "Actie niet toegestaan"; exit(); } $len = filesize($folder.'/'.$file); header("Content-Description: File Transfer"); header("Content-Type: application/force-download"); header("Content-Disposition: attachment; filename=".$file); header("Content-Transfer-Encoding: binary"); header("Content-Length: ".$len); $fp = fopen($folder.'/'.$file, r); fpassthru($fp); fclose($fp); } else { header("Location: site/services/trailer.php?fault=true"); break; } ?> |
Het gedownloadde bestand is overigens telkens even groot, ongeacht de grootte van het te downloaden bestand.
[ Voor 13% gewijzigd door Kvn op 09-10-2005 21:46 ]