PHP-SCRIPT pour le téléchargement - PHP - Programmation
Marsh Posté le 11-12-2008 à 17:26:12
Je suppose qu'il y a une bonne raison, mais je demande quand même : pourquoi ne pas rediriger directement vers le fichier à télécharger ? D'autant que ton répertoire et ta vidéo ont l'air accessible publiquement !?
Marsh Posté le 11-12-2008 à 17:28:34
Par défaut l'exécution d'un scrip php est limité à 30 seconde. Arrivé à 30 seconde, le "timeout" se déclenche et un message d'erreur s'affiche.
Comme ton script envoie un fichier à télécharger et pas un fichier à afficher dans le navigateur tu ne vois pas le message d'erreur qui se retrouve collé à la fin du fichier.
Je te laisse fouiller le forum pour les solutions de contournement en sachant que si tu prends un hébergeur gratuit elles auront très peu de chance d'être fonctionelle.
Marsh Posté le 11-12-2008 à 17:43:32
Merci pour les réponses.
L'adresse public est visible car c'est pour testé les scripts.
Et je passe par un hebergeur payant .
Marsh Posté le 11-12-2008 à 17:20:28
Bonjour à tous j'ai quelque soucis avec la gestion de video de plus d 100Mo .
1*) J'ai touvé sur le net un script avec buffer qui semblait marché, mais apres quelques tests je me suis rendu compte que le fichier ne se téléchargait jamais completement ( Pour une Vid de 180Mo ca dl jusqu'a 120 ou 160 .. , sur la fenetre de téléchargement le % n'est pas affiché et la taille du fichier est inconnue (voir Image) Et si la connexion est occupé par un autre Log le fichier se Dl à 90Mo !, pas du tout stable)
- le script :
<?php
$dir ="/home/adrien/www/musicdemo/";
$fichier ="VidFamille.mpeg";
header("Content-Type:video/mpeg" );
header("Content-Disposition:attachment; filename=$fichier" );
$stream = fopen($fichier, "r" );
while (!feof($stream)) {
$buffer = fread($stream, 65536);
echo $buffer;
}
fclose($stream);
?>
2*) Une seconde recherche m'a donnée un scipt qui indique le % du téléchargement en cours et la taille du fichier est connu , mais si le fichier fait plus de 100Mo il devient moins stable,
la fenetre "ENREGISTRER sous .." met 20/30 sec pour apparaitre et des fois pas du tout ! )
Script Version 2
<?php
$dir ="/home/adrien/www/musicdemo/";
$file ="VidFamille.mpeg";
//telechargement
$taille=filesize("$dir/$file" );
header("Content-Type: application/force-download; name=\"$file\"" );
header("Content-Transfer-Encoding: binary" );
header("Content-Length: $taille" );
header("Content-Disposition: attachment; filename=\"$file\"" );
header("Cache-Control: no-cache, must-revalidate" );
readfile("$dir/$file" );
exit();
?>
Voilou!
Merci d'avance ..