<?php header("Content-disposition: attachment; filename=$fichier"); header("Content-Type: application/force-download"); readfile($fichier); ?>
il me semble qu'on peut le faire aussi avec les fichiers .HTACCESSEnfin c'est toujours bon a savoir.
superca permet de même de récupéré l'intégralité d'une source phpc'est ce qu'il me manquait pour finalisé mon explorateur en php basé sur celui de DHkoldhttp://www.phpcs.com/code.aspx?ID=13073mais avec presque autant d'option qu'un Client FTPmerci ;)
Ca marche bien en http mais ca marche pas en https (sur IE par exemple).Il manque des headers je crois....oOMimiLOo.
mais c bien joli met le fichier a downloader a le nom DOWNLOAD (si bien sur le fichier ou est le code est DOWNLOAD.php)alors comme faire pour un truc.mp3 pour que l'utilisteur affiche le vrai nom du fichier a télécharger ?
Pour GREGPUNK:Excusez-moi mais je n'ai pas très bien compris la question. Peut-être serait-il préférable d'écrire tous les mots dans leur bonne orthographe.Je reste à votre disposition.Cordialement.
J'ai pas très bien compris cette phrase : ATTENTION: $fichier contient le chemin d'accès au fichier!!!
C'est simple, il suffit de metre le nom du fichier à la place de $fichier.Par contre reste à dire s'il faut le chemin complet du style "www.site.com/downloads/fichier.doc" ou simplement metre "fichier.doc"Autre question : Est'il possible de le metre dans un lien du type <a href="<?phpheader("Content-disposition: attachment; filename=$fichier");header("Content-Type: application/force-download");readfile($fichier);?>"> lien </a> enfin c'est un peut compliqué...Sinon cette source m'inquiette gravement ! Je ne savais pas que cela été posible, en effe, lors de surf sur des sites avec des pop-up vers des sites classé X, ils pourraient très bien me faire télécharger un fichier dont je n'ai pas envi tel un .exe logé dans le démarage...enfin je divague mais sinon la source est bien trouvée..Bonne prog A+
$fichier est le chemin d'accès au fichier donc par exemple:/pub/users/ejbye7/files/toto.ficouc:/program files/easyphp/www/files/toto.ficousimplement toto.fic si tous les fichiers se trouvent dans le même répertoireou cv/CV.PDF si cv est un sous-répertoire du répertoire courant et CV.PDF est situé dans ce sous-répertoire.Autre solution:imaginons que index.php appelle download.php via une balise<a href cv/download.php?fichier=CV.PDF>.download.php contenant le code situé en haut de l'article se trouve dans le répertoire cv avec CV.PDF.Ce code bien que fonctionnant (preuve au http://www.ejb-info.net avec les CV au format DOC ou PDF) n'est pas très propre: l'idéal serait que le fichier index.php s'appelle lui-même en spécifiant le téléchargement à effectuer (cela évite d'avoir une tonne de fichiers).J'ignore si on peut faire une balise monstrueure comme celle décrite par fifayer, mais c'est à essayer! Ce serait assez Fun... Au pire: faites ce que je viens d'écrire (boucle sur index.php).Pour fifayer: en effet, sur des sites, il arrive qu'ils demandent l'enregistrement de fichier pour des raisons diverses: il suffit de refuser l'enregistrement.En principe, je devrait avoir répondu à toutes les questions dont je connais la réponse.Ouf!!! Bon maintenant je vais me reposer: je n'ai plus écrit autant depuis longtemps...Merci à tous pour vos commentaires et à plus.EJB
chez moi, ca marche pas. j'ai voulu le rajouter à mon webftp ( http://www.phpcs.com/code.aspx?ID=24147), et non seulement le telecargement ne demare pas, mais en plus, la page entiere est effacée (tout est blanc).
Merci de donner un fichier du type suivant. Il doit s'appeler "forcedown.php":<?php if (isset($_GET['downfile'])) { header('Content-disposition: attachment; filename='.$_GET['downfile']); header('Content-Type: application/force-download'); readfile($_GET['downfile']); } else { echo '<b>Pas de fichier passé en commande.</b>'; echo '<br>Utilisez une ligne de commande du type:'; echo '<br><font face="Courier New" size=2>http://myweb.com/forcedown.php?downfile=fichier.txt</font>'; }?>L'avantage est très grand, car en plus de forcer un téléchargement, vous pouvez en même temps gérer un compteur de téléchargement, ce qui est plutôt fort sympathique.Mais c'est vrai que certains headers semblent manquants. Va savoir lesquels...
Voir le lien ci-dessous pour quelques idées supplémentaires :http://www.phpcs.com/forum.v2.aspx?ID=311070
Je ne comprend pas pourquoi, mais passer par un tel force download pour télécharger un fichier me fait parfois ramer le browser.Si je veux télécharger un ZIP, il suffit que le header se lie au MIME déclaratif du format ZIP. En l'occurence, on a ceci qui marche bien mieux : $Fichier = 'fichier.zip'; header('Content-Type: application/x-zip-compressed'); readfile($Fichier);Pour trouvez les MIME facilement, ouvrez REGEDIT puis la clé "HKEY_CLASSES_ROOT\.???" où les points d'interrogation remplacent l'extension. Le résultat est donné par la valeur "Content Type".Voilà qui va simplifier les choses. Reste plus qu'à bloquer par .HTACCESS le dossier où sont classés les ZIP, de manière à ce qu'ils ne soient accessibles que par un forced download provoqué par un script PHP. Les sessions se cachent derrière pour gérer les droits de téléchargement. Voir:http://www.phpcs.com/forum.v2.aspx?ID=277521
BonjourJ'ai ecris ce petit script. Seulement il pose problème !En effet, quand la fenetre il me dit type inconnu (mame si dans le champ Type il m'indique bien le bon type) et le nom du fichier n'est pas recupéré (c'est le nom du script à la place)Voici le code :<?PHPif (isset($_GET['fichier'])) {$fichier=$_GET['fichier'];$ext=substr(strrchr($fichier,"."),1);header('Content-disposition: attachment; filename='.$fichier);switch($ext){case 'exe': header("Content-Type: application/force-download");case 'zip': header("Content-Type: application/x-zip-compressed");// j'ai fais court pour les type dans l'exemple lol}readfile($fichier);}else{echo 'Erreur dans le traitement du fichier';}?>Merci de m'aider à y voir clair :)
ca ne marche pas pour les gros fichier >8MoDonc je recherche une méthode par htaccess
C'est bon y'a qu'a mettre cette lign au début du fichier:ini_set("memory_limit","50M"); // equivalent a 50Mo ;-)
Bonour à tous,Au risque de passer pour un plaisantin, je vais appel à vous car j'en ai marre d'arpenter la toile et de ne tomber que sur des éléments incomplets de réponse...Il est donc question de forcer le téléchargement d'un fichier (en l'occurence ici un mp3)...Depuis flash :" var fichierdld:String = _root.player.list.__dataProvider[_root.player.list.selectedIndex].data;_root.dwldzik_btn.onRelease = function() { getURL("DLD.php","_blank","POST"); };"Dans mon DLD.php :"<?phpheader("Content-Disposition: attachment; filename=$fichierdld");header("Content-type: application/force-download");readfile($fichierdld);?> Et ça ne marche pas...en fait IE me propose de sauver, ouvrir DLD.php ou d'annuler (c'est la fenètre qu'il me faut mais pour le fichier.mp3"A l'aideJ'en ai marre de retourner toutes les pages internets de code (le problème est que le plus souvent Actionscript sur flash et php ne rassemblent pas les même admirateurs...lol) et d'éplucher l'aide de flash... Alors s'il vous plaît aider moi...D'avance merci
Cette source est trés utile. Mais es qu'il est possible de telecharger un fichier php d'un site web. Par exemple un site ou j'ai remarquer un trés bon script php. Es que je pourrais, si j'ai le lien précis du fichier, pouvoir le télécharger ? Sa sa m'interreserait beaucoup. Merci d'avance de votre réponse
Heureusement, Non ! Tu ne peux pas !
Lucas74 =|> en forçant le téléchargement sur un fichier PHP ça marche (j'ai testé)
un script PHP de ton site, je pense, non ?Sinon, tu n'a pas le code PHP ?
Salut !Il y a la soluce pour les certificats (htps)Sur ce lien -->http://www.phpsources.org/scripts62-PHP.htm
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte
1 874 434 membres 26 nouveaux aujourd'hui 16 152 membres club