Se connecter / S'enregistrer
Votre question

[Php - Java] Lancement d'un téléchargement

Tags :
  • Java
  • Programmation
Dernière réponse : dans Programmation
24 Juin 2007 17:53:48

Bonjour tout le monde ! Je travaille actuellement sur une rubrique de téléchargement, et rencontre quelques difficultées quant au lancement "automatique" du téléchargement ...

Dans une page "telechargement.php", je possède une image servant de bouton (sans formulaire, mais uniquement avec un lien vers cette meme page en passant cette fois ci un paramettre supplémentaire "action=ajout-succes-telechargement").
On récupère la variable "action" :
Si celle si est égale à "ajout-succes-telechargement" alors on effectue une incrémentation dnas la base de données et l'on charge le fichier demandé.

J'ai donc matérialisé cette condition par le code suivant :

  1. if($action == "ajout_succes_telechargement");
  2. {
  3. //Incrémentation d'une valeure "succes" supplémentaire
  4. $req_ajout_succes = mysql_query("UPDATE dr_telechargement SET succes=succes+1 WHERE id=\"$id_telechargement\"");
  5. //Lancement du téléchargement
  6. include $lien;
  7. }


L'incrémentation marche sans problème sous IE, mais sous Firefox, le script incrémente une valeur supplémentaire égale a 2 au lieu de 1 ... Serait il lancé deux fois ?

Pour le lancement du téléchargement, je n'ai à vrai dire, aucune idée de la fonction php ou code javascript à utiliser (le "include" ne semble pas marcher).

Je vous remercie donc d'avance pour l'attention prêtée à ce message, et la réponse éventuelle qui en découlera =)
Merci !

Autres pages sur : php java lancement telechargement

24 Juin 2007 23:31:23

- A la place de l'include essayes :
if (file_exists($lien)) // Je suppose que $lien contient le nom du fichier à télécharger
{
header('Content-type: image/jpeg'); // Ici j'indique le format image jpeg, cf. le fichier mimes.type
header('Content-Disposition: attachment; filename="'.rawurldecode($lien)).'"';
readfile($lien);
exit;
}
25 Juin 2007 09:18:37

Merci Warp6 pour ta réponse et ta solution !
Malheureusement je n'arrive pas à faire fonctionner ce bout de code correctement ... La variable "$lien" comprend en effet le nom du fichier, puisqu'elle correspond à l'url du fichier à télécharger. Une petite précision est cependant nécessaire, Dois je référencer dans une balise header tous les formats qui vont correspondrent au fichier à télécharger ?

Comme ici :
  1. header('Content-type: image/jpeg');


Merci encore Warp6 !
27 Juin 2007 22:18:30

Pour les formats, j'ai copié le fichier mime.types (que tu trouveras dans le dossier d'apache) dans le dossier de ma page.

Le code devient standard pour les extensions de fichier :
header('Content-type: '.qmimetype($liens));

- avec code de qmimetype :

function qmimetype($file)
{
$ext=array_pop(explode('.',$file));
foreach(file('mime.types') as $line)
if(preg_match('/^([^#]\S+)\s+.*'.$ext.'.*$/',$line,$m))
return $m[1];
return 'application/octet-stream'; // Par défaut
}
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS