Bonsoir,
je voudrais savoir s'il y a moyen de forcer un téléchargement si du code est placé avant.
Bonsoir,
je voudrais savoir s'il y a moyen de forcer un téléchargement si du code est placé avant.
Bonsoir,
Pourrait-tu expliquer un petit peu plus?
Tu peux ouvrir un pop-up en javascript.
J'explique un peu : quand je cherche un script qui fait ça, ce que je trouve nécessite qu'il n'y ait aucune sortie placée avant (par exemple, pas de echo).
Sabotage, ton idée serait de placer ce code de téléchargement dans un fichier séparé et que je ferais apparaître via une pop-up ? Et comme il faut passer un nom de fichier à ce code, je le passerais via l'URL ?
Je reviens ici, car ça n'est pas au point ; j'ai mis dans mon code une pop-up ainsi :et dans le fichier telecharger.php, il y a ça :
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 <?php if ($handle = opendir('../upload1/image')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { echo '<a href="../upload1/image/'.$file.'">'.$file.'</a><br>'; echo '<script type="text/javascript">'; echo "window.open('http://www.kitskats.com/upload/telecharger.php?nom_file=".$file."','','config=toolbar=0,menubar=0,location=0,scrollbars=1,width=720,height=720')"; echo '</script>'; } } closedir($handle); } ?>Le passage de nom_file se passe bien (déjà testé), mais dans les pop-ups (une par fichier, ce qui fait qu'on est noyé), j'ai plein de warnings, au lieu de la proposition d'un téléchargement ; comment se fait-ce ?
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 <?php $nom_file=$_GET['nom_file']; // code pour forcer un téléchargement $full_path = $nom_file; //echo "full path=".$full_path."<br>"; $file_name = basename($full_path); ini_set('zlib.output_compression', 0); $date = gmdate(DATE_RFC1123); header('Pragma: public'); header('Cache-Control: must-revalidate, pre-check=0, post-check=0, max-age=0'); header('Content-Tranfer-Encoding: none'); header('Content-Length: '.filesize($full_path)); header('Content-MD5: '.base64_encode(md5_file($full_path))); header('Content-Type: application/octetstream; name="'.$file_name.'"'); header('Content-Disposition: attachment; filename="'.$file_name.'"'); header('Date: '.$date); header('Expires: '.gmdate(DATE_RFC1123, time()+1)); header('Last-Modified: '.gmdate(DATE_RFC1123, filemtime($full_path))); readfile($full_path); exit; // nécessaire pour être certain de ne pas envoyer de fichier corrompu ?>
c'est quoi "plein de warnings" ?
Je te mets un exemple pris sur une des pop-ups (comme il y a 4 fichiers, il y a 4 pop-ups) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Warning: filesize() [function.filesize]: Stat failed for bienvenue.gif (errno=2 - No such file or directory) in /homez.187/kitskats/www/upload/telecharger.php on line 15 Warning: Cannot modify header information - headers already sent by (output started at /homez.187/kitskats/www/upload/telecharger.php:15) in /homez.187/kitskats/www/upload/telecharger.php on line 15 Warning: md5_file(bienvenue.gif) [function.md5-file]: failed to open stream: No such file or directory in /homez.187/kitskats/www/upload/telecharger.php on line 16 Warning: Cannot modify header information - headers already sent by (output started at /homez.187/kitskats/www/upload/telecharger.php:15) in /homez.187/kitskats/www/upload/telecharger.php on line 16 ...
Partager