FORCER LE TELECHARGEMENT D'UNE VIDEO DISTANTE

[Résolu]
Signaler
Messages postés
408
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
18 décembre 2012
-
Messages postés
408
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
18 décembre 2012
-
Salut :)

Je relance mon post qui date de longtemps pour la simple raison que je n'ai toujours pas trouvé :) Mon post était :

Salut donc j'aimerai forcer le telechargement d'une video distante. C'est a dire que la fenetre Open Save as ect... s'ouvre, et non pas que la video se joue directement dans le player.

Donc poru ce faire j'ai fait :

$langfile = $_GET['url'];
$langfile = str_replace(' ','%20',$langfile);
header("Content-Type: octet-stream");
header("Content-Length: ".remote_filesize($langfile) );
header("Content-Disposition: attachment; filename=$langfile");
include($langfile);

donc quand je vais sur l'url (pour simplifier) :

www.monsite.com/video.php?&url=http://unautresite/video.avi

he bien la fenetre Open Saves as... et tout s'ouvre comme je l'aurai souhaiter.

File name : video.avi (normal)
File type : vide (normal que rien n'est marké ?)
From : www.monsite.com <-----------

La est le prob du From, car le code croit que la video vient de mon site! alors qu'elle provient d'un site distant! Ce qui fait que si je click sur open ou save as explorer m'affiche l'erreur:

"Internet explorer cannot download video.avi from www.monsite.com. Internet explorer was not abble to open the internet site. The requested site was not available or cannot be found".

L'erreur est normal vu que explorer croit que la video se situe sur mon site.

J'espere avoir été assez clair...

Merci d'avance!

Remarque depuis ce post defkrie ma proposer ceci :

$fichier = 'http://lautresite.com/video.avi';
$nom_fichier = 'video.avi';

// téléchargement du fichier
header('Content-disposition: attachment; filename='.$nom_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);

j'ai essayer mais quand j'ouvre la page il me lance le fichier a partir du quel ce code a été exécuté, dans mon cas test.php :\ et toujours From www.diablus.com

MErci d'avance, lol...

----------------------------------------------------

Site en developpement : www.diablus.com

2 réponses

Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Salut!
J'ai fais un code qui a fonctionné pour un fichier distant. Par contre, g mis le filesize en dur dans le code car pas moyen pour moi de l'obtenir pour un fichier distant... Je te laisserai voir et me dire

<?php
if(isset($_GET['url']))
$url = $_GET['url'];
else
exit;

$pos = strrpos($url, '/');
$fichier = substr($url, ( $pos + 1 ));

header("Content-disposition: attachment; filename=$fichier");
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: application/octet-stream\n"); // Surtout ne pas enlever le \n
header("Content-Length: 3201028");
header("Pragma: no-cache");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");
header("Expires: 0");
readfile($url);
?>


@++

R@f

Messages postés
408
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
18 décembre 2012

Merci je vais analyser cela et je te répond plus tard :)

Encore merci :)
(meme si ca va pas marcher lol)
----------------------------------------------------

Site en developpement : www.diablus.com