Si tu n'as pas besoin de fonctionnalités avancées, tu peux le coder toi-même.
Je te file le petit script que j'utilise.
Tous d'abord, réglons le problème des xpi. A la racine de ton site, tu places un fichier texte nommé ".htaccess", il doit contenir la ligne :
Dorénavant les fichiers avec l'extension ".xpi" seront servis avec le type mime correct.
Si ce fichier existe déjà, tu rajoutes la ligne de code.
Ensuite dans tes pages au lieu de pointer vers les fichiers .xpi, tu pointes vers une adresse de type "telecharger.php?id=1&action=telecharger".
id contient un entier qui identifie le fichier, action contient "telecharger" pour télécharger ou "installer" pour installer le xpi.
le fichier telecharger.php :
Code : Tout sélectionner
<?php
$fichiers[1]='tonExtension1.xpi';
$fichiers[2]='tonExtension2.xpi';
$fichiers[3]='tonExtension3.xpi';
$stats='statsTelechargements.txt';
if (isset($_GET['id'])) {
$id=(int)$_GET['id'] ;
$action=$_GET['action'];
// inscription des stats
$fp=fopen($stats, 'r+');
if ($fp) {
$donnees=fgets($fp);
};
$telechargements=unserialize($donnees);
if (isset($telechargements['fichier'][$id])) {
$telechargements['compteur'][$id]=$telechargements['compteur'][$id]+1;
} else {
$telechargements['fichier'][$id]=$fichiers[$id];
$telechargements['compteur'][$id]=1;
};
$donnees=serialize($telechargements);
fseek($fp,0);
fputs($fp, $donnees);
fclose($fp);
// telechargement du fichier
if ($action == 'telecharger') {
$path_fichier = pathinfo($fichiers[$id]);
$nom_fichier = $path_fichier['basename'];
$ext_fichier = $path_fichier['extension'];
switch( $ext_fichier ){
case 'xpi': $content_type='application/x-xpinstall'; break;
case 'zip': $content_type='application/zip'; break;
//case 'pdf': $content_type='application/pdf'; break;
//case 'exe': $content_type='application/octet-stream'; break;
//case 'gif': $content_type='image/gif'; break;
//case 'png': $content_type='image/png'; break;
//case 'jpg': $content_type='image/jpg'; break;
default: $content_type='application/force-download';
};
header('Content-Type: '.$content_type.' name='.$nom_fichier);
header('Content-Disposition: attachment; filename='.$nom_fichier);
header('Content-Length: '.filesize($fichiers[$id]));
header('Content-Disposition: attachment; filename='.$nom_fichier);
header('Cache-Control: no-cache, must-revalidate'); // HTTP/1.1
header('Pragma: no-cache'); // HTTP/1.0
readfile($fichiers[$id]);
exit();
};
if ($action == 'installer') {
header('Location: http://joliclic.free.fr/mozilla/boox/'.$fichiers[$id]);
exit();
};
// si les donnees fournies en get ne sont pas bonnes,
// on renvoie sur une page 404
} else {
header('Location: http:/tonsite.fr/404.html');
exit();
};
?>
Adapte le script (et les chemins), fichiers[] contient les différents fichiers que tu proposes en téléchargement. Le fichier "statsTelechargements.txt" (que
tu dois créer la première fois, vide) contiendra les données comptabilisées des téléchargements. Ces données sont sérialisées, pour les lire, il faut un autre script, par exemple "lectureStats.php" :
Code : Tout sélectionner
<?php
$archive='statsTelechargements.txt';
$fp=fopen($archive, 'r+');
if ($fp) {
$donnees=fgets($fp);
};
$telechargements=unserialize($donnees);
echo '<pre>';
print_r($telechargements);
echo '</pre>';
?>
A toi de l'améliorer si tu veux une jolie page.
Evidement ce script simple n'est valable que pour quelques extensions, beaucoup trop simple et pas maintenable sinon.
(y'a peut être quelques erreurs, j'ai recopié vite fait...)