Bonjour a tous,
J'ai un problème avec le téléchargement de fichier.
Lorsque je clique sur le lien de téléchargement d'un fichier .doc ou .xls, le navigateur m'ouvre le fichier mais crypté. Ya des signes bizarres
Et lorsque j'essai d'ouvrir des fichiers images (.png et .jpg), il m'ecrit : 'La visionneuse de photos Windows ne peut ouvrir cette image car le fichier semble endommagé ou corrompu, ou il est trop grand'. Alors qu'il n'est rien de tout cela.
Voici ma fonction de telechargement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84 public function telechargerFichier ($file) { if (! is_file($file)) { throw new Zend_View_Exception('Fichier : ' . $file . ' inexistant'); } $len = filesize($file); echo 'taille fichier : '.$len; $filename = basename($file); $file_extension = strtolower(substr(strrchr($filename, "."), 1)); switch ($file_extension) { case "pdf": $ctype = "application/pdf"; break; case "exe": $ctype = "application/octet-stream"; break; case "zip": $ctype = "application/zip"; break; case "doc": case "docx": $ctype = "application/msword"; break; case "xls": case "xlsx": $ctype = "application/vnd.ms-excel"; break; case "ppt": case "pptx": $ctype = "application/vnd.ms-powerpoint"; break; case "gif": $ctype = "image/gif"; break; case "png": $ctype = "image/png"; break; case "jpeg": case "jpg": $ctype = "image/jpg"; break; case "mp3": $ctype = "audio/mpeg"; break; case "wav": $ctype = "audio/x-wav"; break; case "mpeg": case "mpg": case "mpe": $ctype = "video/mpeg"; break; case "mov": $ctype = "video/quicktime"; break; case "avi": $ctype = "video/x-msvideo"; break; case "php": case "htm": case "html": case "txt": die("<b>Cannot be used for " . $file_extension . " files!</b>"); break; default: $ctype = "application/force-download"; } header("Pragma: public"); header("Expires: 0"); header("Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: public"); header("Content-Description: File Transfer"); header("Content-Type: $ctype"); $header = "Content-Disposition: attachment; filename=" . $filename . ";"; header($header); header("Content-Transfer-Encoding: binary"); header("Content-Length: " . $len); @readfile($file); exit(); }
Aidez moi s'il vous plait =)
Partager