Telecharger un fichier zip via un fichier php

Eléphanteau du PHP | 33 Messages

31 mars 2005, 15:12

bonjour,

Je voudrais pouvoir faire telecharger un fichier zip par exemple via un fichier php.

style fichier.php?id=2, je recupère l'url de telechargement via l'id recuperé et "j'envoi" le fichier demandé.

Je sais pas trop comment on fait ça, je pense qu'il faut changer le header, si quelqu'un avait un exemple déjà fait ce serait sympas ;)

En même temps, je voudrait compter combien de fois le fichier à été téléchargé ;) je pense qu'il faut un champs nb_dl dans la base que j'increment de 1 a chaque execution de la page. Si y'a mieux dites moi :)

Merci.

Mammouth du PHP | 859 Messages

31 mars 2005, 15:23

Oui c'est bien avec header() :

Je te passe un code que j'ai fait il y a un petit moment ;)
<?php
// infos du fichier 
$fichier = "fichier.zip";
     
// téléchargement du fichier 
header('Content-disposition: attachment; filename='.fichier); 
header('Content-Type: application/force-download'); 
header('Content-Transfer-Encoding: fichier');  
header('Content-Length: '.filesize($fichier)); 
header('Pragma: no-cache'); 
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0'); 
header('Expires: 0'); 
readfile($fichier);
?>

Eléphanteau du PHP | 33 Messages

31 mars 2005, 16:00

Ouki, ça fonctionne, par compte ça met pas mal de temps entre le temps ou je clique et le moment ou le téléchargement commence (6, 7s) !
Pourquoi c'est aussi long ? y'aurai pas moyen que ce soit instantané ?
ça le fait même sans que je fasse mes requetes pour recup l'url dans la bdd !

Mammouth du PHP | 859 Messages

31 mars 2005, 16:06

Le problème ne vient pas du code je l'utilise dans un de mes scripts depuis longtemps déjà et je n'ai pas ce problème

Eléphanteau du PHP | 33 Messages

31 mars 2005, 16:41

bon je me suis renseigné, apparament faire un readfile sur un gros fichier zip c'est pas bon s'pour ça que c'est long. Du coup je fais un header tout simple ça fonctionne :)