begin process at 2012 05 31 05:04:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

pb de download forcé depuis une url distante


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

pb de download forcé depuis une url distante

dimanche 10 septembre 2006 à 00:37:24 | pb de download forcé depuis une url distante

caviar

    Salut... j'ai un petit problème de download forcé depuis une url distante ( j'entends pas sur le même serveur que le script)...

j'ai le code suivant qui permet de forcer le téléchargement

if (file_exists($fichier)){
            // On d?marre le t?l?chargement du fichier 
            header("Content-disposition: attachment; filename=$nomfichier");
            header("Content-Type: application/force-download");
            header("Content-Transfer-Encoding: $type\n"); // Surtout ne pas enlever le \n
            header("Content-Length: ".filesize($fichier));
            header("Pragma: no-cache");
            header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0, public");
            header("Expires: 0");
            readfile($fichier);

quand j'envoie $nomfichier du style download/monfichier.pdf (sur le même serveur) ça marche impec ...
en revanche si j'envoie http://www.site.com/dossier/monfichier.pdf ça ne fonctionne pas ... Vous savez si c'est possible de faire fonctionner ça ? et de forcer le download depuis une url distante ?

merci bcp :)
@++
dimanche 10 septembre 2006 à 02:59:08 | Re : pb de download forcé depuis une url distante

franco_se

Membre Club
ça ne marche pas, simplement parce que file_exists() ne permet pas de verifier l'existance d'un document sur un serveur distant
dimanche 10 septembre 2006 à 09:10:09 | Re : pb de download forcé depuis une url distante

coockiesch

Salut!
A la place de file_exists, tu peux tenter une ouverture en lecture ( fopen( $fichier, 'r' ) ) ; si ça marche, le fichier existe... :)

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
dimanche 10 septembre 2006 à 11:54:12 | Re : pb de download forcé depuis une url distante

malalam

Administrateur CodeS-SourceS
Hello,

plutôtles sockets, il y a plus de chances que cela fonctionne.
lundi 11 septembre 2006 à 09:16:29 | Re : pb de download forcé depuis une url distante

caviar

ah yes ..
effectivement je n'avais pas pensé à ça .. lol ..
je vais essayer ce que vous me dites :)
euh ...juste une question ...les sockets ça marche comment (je dis ça mais je vais chercher de ce pas ;) )
@++ merci
lundi 11 septembre 2006 à 10:44:02 | Re : pb de download forcé depuis une url distante

caviar

    Salut ...
bon j'ai essayé avec du readfile, du fopen et du file_get_content ...
il me retourne toujours
Warning: file_get_contents(http://nhgdth.free.fr/ee/telechargements/dwlz/plaquette.pdf): failed to open stream: Bad file descriptor in

je capte pas ...
sinon les sockets j'ai un peu rehgardé mais j'ai pas très bien capté le principe :(
merci
@+

ps : je trourne en local avec easyphp (au cas où)
lundi 11 septembre 2006 à 20:15:21 | Re : pb de download forcé depuis une url distante

sjon

Sael og blesuð

download.php :

<?php
$filename = $_GET['file'];
if(ini_get('zlib.output_compression'))
ini_set('zlib.output_compression', 'Off');
$file_extension = strtolower(substr(strrchr($filename,"."),1));
if( $filename == "" ){
    echo '<html><body>ERROR: download file NOT SPECIFIED.</body></html>';
    exit;
} elseif ( ! fopen( $filename,'r') ){
    echo '<html><body>ERROR: File not found.</body></html>';
    exit;
};
switch( $file_extension ){
    case "pdf": $ctype="application/pdf"; break;
    case "exe": $ctype="application/octet-stream"; break;
    case "zip": $ctype="application/zip"; break;
    case "doc": $ctype="application/msword"; break;
    case "xls": $ctype="application/vnd.ms-excel"; break;
    case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
    case "gif": $ctype="image/gif"; break;
    case "png": $ctype="image/png"; break;
    case "jpeg":
    case "jpg": $ctype="image/jpg"; break;
    default: $ctype="application/force-download";
}
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: $ctype");
header("Content-Disposition: attachment; filename=".basename($filename).";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));
readfile("$filename");
exit();

?>

Puis après faire download.php?file=http://site.com/fichier.ext

Bon courage ...

NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

Sigurjón Birgir Sigurðssón aka Sjón


lundi 11 septembre 2006 à 20:58:54 | Re : pb de download forcé depuis une url distante

malalam

Administrateur CodeS-SourceS
Hello,

même problème avec readfile()... ;-)
lundi 11 septembre 2006 à 21:51:30 | Re : pb de download forcé depuis une url distante

caviar

    ouai readfile ça ne marche pas non plus :o'(
je sais pas si c'est possible en fait...
++

lundi 11 septembre 2006 à 22:15:18 | Re : pb de download forcé depuis une url distante

sjon

Sael og blesuð

Bah moi cela marche ... :-) cependant votre fichier http://nhgdth.free.fr/ee/telechargements/dwlz/plaquette.pdf n'existe pas ...

Bon courage ...

NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

Sigurjón Birgir Sigurðssón aka Sjón

1 2

Cette discussion est classée dans : fichier, url, header, distante, download


Répondre à ce message

Sujets en rapport avec ce message

Probleme de téléchargement en local [ par Jantes Romeu ] Salut les gars ! J'ai un petit probleme de telechargement de fichier en local, en fait je suis en reseau avec plusieurs pcs qui ont des noms pour leu forcer le téléchargement d'un MP3 [ par lawebmachine ] Bonjour Je cherche à forcer le téléchargement des MP3 sur le site que je fais. Seulement ça me met un message d'erreur. Qui peut m'aider ? voici le [PHP] upload de fichier par url [ par olvean ] bonjour voila je recherche un script qui upload un fichier a partir d'une url sur mon serveur merci d'avance fread - lecture de fichier incomplet [ par ozzeoozzeo ] Bonjour,J'ai écris un petit script qui me permet d'ouvrir une page web par l'intermédiaire de son URL stocké dans ma base de donnée pour récupérer le Header vers une ancre [ par ov3rdoze ] Bonjour à tous J'essaye de faire une redirection avec un header. Le problème est que je n'arrive pas à insérer # dans la nouvelle URL. header ("loca Transfert à la volé fichier URL -> FTP [ par molsy26 ] Exécuter fichier VBS sur machine distante [ par Sshenron ] Bonjour, A l'aide de PHP, je souhaiterais exécuter un script VBS sur une machine distante (creation de dossiers etc ...). Toutes les machines sont sur Coder un URL [ par deadisdead ] Bonjour à tous, Je cherche à faire en sorte qu'un URL soit "non lisible" par un utilisateur mais "lisible" pour un navigateur de sorte à ce que l'adre Passage de paramètre dans l'url (php) [ par schpice ] Bonjour tout le monde, voila j'ai un pti problème. Voila j'ai 2 fichiers en Php, l'un avec ma fonction et l'autre qui appel la fonction et je n'arrive générer un fichier XLS [ par orionis1 ] Bonjour,J'ai créé une page HTML/PHP pour une saisie de bon de commande par les utilisateurs de ma boîte.Or, ce bon de commande, une fois rempli, doit


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales