Download et changement de page

Petit nouveau ! | 2 Messages

13 janv. 2009, 21:41

Bonjour,

J'ai programmé un site de téléchargement en php/html.

Le problème est que je n'arrrive pas à gérer le changement de page lorsqu'un utilisateur est entrain de télécharger après avoir cliquer sur un bouton de type submit.

Il est obligé d'attendre la fin du téléchargement pour que son action se déroule.

J'ai essayé de d'inclure le bouton dans un formulaire doté d'une target= "_blank" mais le résultat est identique; que je sois dans la même fenêtre ou non : ça mouline jusqu'à la fin du téléchargement.

Pouvez-vous m'aider?

ViPHP
AB
ViPHP | 5818 Messages

13 janv. 2009, 22:04

En général on utilise un pop up de téléchargement pour permettre au visiteur de ne pas rester bloqué sur la page initiale dans l'attente de l'upload des fichiers du post. Sinon je ne vois pas comment faire :-k
Même si ton formulaire initial appelle une autre page, la page appelante attendra la fin de l'exécution de l'upload avant de poursuivre.

Petit nouveau ! | 2 Messages

13 janv. 2009, 22:41

J'ai essayer en mettant le lien dans une pop-up, mais j'obtient toujours cette attente.
Mon code que j'ai essayé : <a href="Le_fichier_a_telecharger" onclick="window.open(this.href, 'height=200, width=400, top=100, left=100, toolbar=no, menubar=yes, location=no, resizable=yes, scrollbars=no, status=no'); return false;">Telecharger</a>

Comment écrirais-tu cette pop-up de téléchargement ?

ViPHP
AB
ViPHP | 5818 Messages

14 janv. 2009, 00:23

Heu ... ton titre indique download et je te répond upload :oops:

Pour faire simple,
Dans ta page d'appel if faut un simple lien qui appelle le popup avec une variable qui indique le fichier à télécharger

Code : Tout sélectionner

<a href="nom_du_popup.php?fichier=nom_du_fichier" onclick="window.open(this.href, 'height=200, width=400, top=100, left=100, toolbar=no, menubar=yes, location=no, resizable=yes, scrollbars=no, status=no'); return false;">Telecharger</a>
Et dans ton popup tu récupères le nom de la variable, tu vérifies si ce fichier est autorisé pour le téléchargement et ensuite tu intègres cette variable dans le href
Par exemple :
<?php
$fichier = isset($_GET['fichier'])? $_GET['fichier'] : null;

// Tableau des fichiers autorisés
$autorise = array();
$autorise[] = 'fichier1';
$autorise[] = 'fichier2';
$autorise[] = 'fichier3';

if (isset($fichier) && in_array($fichier,$autorise)) echo '<a href = "'.$fichier.'">Télécharger </a>';
?>