Se connecter avec
S'enregistrer | Connectez-vous

Telechrger des fichiers !

Dernière réponse : dans Programmation

Bonjour all,

en fait je suis débutante en informatique et je suis en stage,

j'essaye de trouvé le script php pour pouvoir télécharger des fichiers média mais sans succé si vous avez une idée comment faire!

le problème c'est de gros fichiers qui se trouve sur un serveur"vidéo" et l'utilisateur se trouve sur un autre serveur "utilise apache par exemple"

voila ,

je vous remercie ,

a++;)

Autres pages sur : telechrger fichiers

Lassé par la pub ? Créez un compte
Expert Programmation

Ca se fait assez simplement:
  1. <?php
  2. $fichier = '<a href="http://www.domain.com/fichier.ext" target="_blank">http://www.domain.com/fichier.ext</a>';
  3.  
  4. // Nous extrayons les informations grâce à $fichier
  5. $fichier_nom = basename($fichier);
  6. $fichier_mime = mime_content_type($fichier);
  7.  
  8. // téléchargement du fichier
  9. header("Content-disposition: attachment; filename=".$fichier_nom);
  10. header("Content-Type: $fichier_mime");
  11. header("Content-Transfer-Encoding: binary");
  12. header("Pragma: no-cache, public");
  13. header("Cache-Control: public, no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
  14. header("Expires: 0");
  15. readfile($fichier);
  16. ?>

je vous remercie pour votre réponse ,

je réessayerai et vous vous tiendrai au courant!

et j'ai une petite question:

votre script c'est pour des fichiers text"comme je vois l'extension .txt" c'est la meme chose avec des fichiers vidéos ??"media"

je vous remercie encore!

AHE OKII§

remerciement!

quand on 'a pas beaucoup d’expérience,

en fait je n'ai jamais fait de l'informatique , j'ai déjà fait un peu de programmation "matlab" en 2005 =>j'ai un diplôme mais pas en info et là j'ai trouvé une formation très intéressante en 1 ana pour avoir une licence pro en info ce qui me permettra de rentrer dans le monde du travail! enfin, j'espère bien

je vous remercie encore;)

Bonjour,

le problème n'est pas encore résolu! j'essaye d’intégrer ce script dans mes programmes!je cherche comment faire !

comme il s'agit de gros fichiers je ne sais pas si ça va marcher ou pas !un ami m'a conseillé aussi de voir les notions sur libcurl!

il m'a dit comme il s'agit de transfert de fichiers ou bien téléchargement de fichiers vidéos d'un serveur a un autre"de gros fichiers " !

donc j'essaye de revoir aussi tout ça si vous avez une idée!

j'ai été sur php.ini j'ai bien trouvé extension libcurl!

mais je ne sais pas comment je contonue!!

merci

je vs remercie pour la doc mais tout est en anglais lol!*

au fait là j'ai bien mis votre script!mais j'ai plusieurs questions:
comme j'ai deux extensions=>comment je peux les concaténer c-a-d comment je peux écrire ' $fichier = 'http://www.domain.com/fichier.ext'comme j'en ai 2!
et je voulais savoir demain c'est bien l'url???
pour attachement faut que je crée un dossier avec ce nom et le mettrai dans le même répertoire.
et header dans ce script ce que veut dire exactement???

et comment je peux faire appelle a ce scripte sachant que j'ai déjà crée le formulaire avec tableau ....donc il reste que le contenu???

et ce script concerne donc que le téléchargement !

parce que faut que j'essaye de créer un autre pour uploader des fichiers si l'utilisateur veut bien faire ça???

je vs remercie ,j'ai beaucoup de questions !je n'ai pas d’expérience dans ce domaine c'est pour cette raison je pose toutes les questions et j'essaye de chercher de ma part aussi !je veux bien apprendre pas que faire copier coller ;) 

merci pour votre aide ce qui m'a beaucoup aidé :ange: 

++;)
Expert Programmation

Ohla, une chose à la fois.
Le script que je t'ai donné doit être appelé par un lien (vers une nouvelle page) qui ne doit rien afficher, qui doit juste contenir ce script.
En gros, dans ta page de liens vers les fichiers à télécharger, tu devrais avoir des liens du genre: href="telecharger.php?fichier=nomdufichier.ext"
Et le script que je t'ai donné doit s'appeler telecharger.php.
La ligne N°2 doit être: $fichier = $_GET['fichier'];

Pour l'upload, c'est un peu plus compliqué, il faut passer par un formulaire et des fonctions comme move_uploaded_file()

oui ce que je vais utiliser!j'ai deja un exemple pour upload un petit fichier !

ouf ca me prend la tete le pb de telechagement!si j'ai bien compris j'ai crée un fichier telecharge.php seul et apres j'ai ete dans un autre fichier j'ai fait appel a ce fichier avec include et j'ai rajouté href et ca ne

marche pas !je n'ai pas ni erreurs ni rien aucun changement!

pour $fichier=$_get['fichier'] je l'utilise tel qu'il est !et je rajoute href ....

au fait t'avais dit ligne 2 c'est ou exactement??,
Expert Programmation

Heu, au bout d'un moment, il faut essayer de réfléchir par soi-même. Je veux bien aider, mais il ne faut pas exagérer.

Et quand je dit que telecharge.php doit être appelé par un lien (vers une nouvelle page) qui ne doit rien afficher, ça signifie aussi surtout pas en include.

Bonjour,

j'ai un problème avec la fonction mime!

comme les deux extensions n'existes pas j'ai essayé de crée une nouvelle fonction dans le même fichier "telecharger.php"

le probleme j'ai commencé a ecrire le code et apres j'ai perdu la fin!!!le script est bien:

  1. <?php
  2. if( ! function_exists(mime_content_type))
  3. {// nous somme dans le cas ou elle n'existe pas
  4. function mime_content_type($f){
  5. $ext= strtolower (substr($f,strpos($f,".")));
  6. //on ne se base que sur l'extension du fichier
  7. switch ($ext){
  8. case".gz": $mtype="application/x-gzip";break;
  9. case".tgz": $mtype="application/x-gzip";break;
  10. case".zip": $mtype="application/zip";break;
  11. case".pdf": $mtype="application/pdf";break;
  12. case".gif": $mtype="image/gif";break;
  13.  
  14. //donc pour les fichiers videos exemple
  15.  
  16. case".gxf": $mtype="video/gxf";break;
  17. default: $mtype="application/octet-stream";break;
  18.  
  19.  
  20. }
  21. }
  22. //je ne sais pas comment je peux continuer ?
  23.  
  24. else {??????
  25.  
  26. }
  27.  
  28. ?>


je l'ai crée comme j'ai eu un message d'erreur !undefined function mime-content_type??

voila je vous remercie ;) 


Expert Programmation

J'imagine que tu as pris le code sur http://www.g33k-zone.org/post/2009/11/12/Retrouver-le-t... (bonne idée :D )
En t'aidant de http://www.g33k-zone.org/pages/liste-des-types-mime, tu peux ajouter pour chaque extension le bon type, c'est à faire avant la ligne default: $mtype = "application/octet-stream"; break;

  1. <?php
  2. if (!function_exists(mime_content_type)) {
  3. // Nous sommes dans le cas où elle n'existe pas
  4. function mime_content_type($f) {
  5. $ext = strtolower(substr($f,strrpos($f, ".")));
  6. // On ne se base que sur l'extension du fichier
  7. switch($ext){
  8. case ".gz": $mtype = "application/x-gzip"; break;
  9. case ".tgz": $mtype = "application/x-gzip"; break;
  10. case ".zip": $mtype = "application/zip"; break;
  11. case ".pdf": $mtype = "application/pdf"; break;
  12. case ".png": $mtype = "image/png"; break;
  13. case ".gif": $mtype = "image/gif"; break;
  14. case ".jpg": case "jpeg": $mtype = "image/jpeg"; break;
  15. // Notez le cas d'un même type avec différentes extensions
  16. case ".txt": $mtype = "text/plain"; break;
  17. case ".htm": case ".html": $mtype = "text/html"; break;
  18. /* C'est ici qu'on ajoute une nouvelle condition */
  19. default: $mtype = "application/octet-stream"; break;
  20. // Par défaut, c'est application/octet-stream
  21. }
  22. return $mtype;
  23. }
  24. }
  25. ?>

je pense que dans le premier fichier t'avais oublié :
header("Content-Lenght: ".filesize($chemin.$fichier));

qui lit la taille d'un fichier ,

et pour le dernier header, t'avais mis :

header($fichier) au lieu de header($chemin.$fichier)?

je ne sais pas si c'est ça ou pas??

donc mon code sera:

  1. <?php
  2. $fichier = '<a href="http://www.domain.com/fichier.ext" target="_blank">http://www.domain.com/fichier.ext</a>';
  3. $fichier = $_GET['fichier'];
  4.  
  5.  
  6. if (!function_exists(mime_content_type)){
  7. function mime_content_type($fichier){
  8. $ext= strtolower(substr($fichier,strrpos($fichier,".")));
  9.  
  10. switch($ext){
  11.  
  12. case ".gz": $type= "application/x-gzip"; break;
  13. case ".tgz": $type= "application/x-gzip"; break;
  14. case ".zip": $type= "application/zip"; break;
  15. case ".pdf": $type= "application/pdf"; break;
  16. case ".png": $type= "image/png"; break;
  17. case ".gif": $type= "image/gif"; break;
  18. case ".jpg": $type= "image/jpeg"; break;
  19. case ".txt": $type= "textn/plain" ;break;
  20. case ".html": $type= "text/html";break;
  21. default: $type= "application/octet-stream"; break;
  22. }
  23. return $type;
  24. }
  25. }
  26. // Nous extrayons les informations grâce à $fichier
  27. $fichier_nom = basename($fichier);//basename separe le nom du fichier et le nom du dossiers
  28. $fichier_mime = mime_content_type($fichier);
  29. // téléchargement du fichier
  30. header("Content-disposition: attachment; filename=".$fichier_nom);
  31. header("Content-Type: $fichier_mime" );
  32. header("Content-Transfer-Encoding: $type\n" );
  33. header("Pragma: no-cache, public" );
  34. header("Cache-Control: public, no-store, no-cache, must-revalidate, post-check=0, pre-check=0" );
  35. header("Expires: 0" );
  36. readfile($chemin.$fichier);
  37. ?>



merci ;++

j'ai testé ce code ,j'ai essayé de télécharger un pdf j'ai eu ce message d'erreurs:

adobe ne peut pas ouvrir ce fichier car ce type de fichier n'est pas prise en charge et pourtant je l'avais bien mis!ou bien a été envoyé en pièce jointe et n'a pas été décodé correctement !

voila là j'ai essayé vraiment de travailler !pour un teste le chemin j'ai mis le chemin de fichier sur mon pc!

merciiiii :??: 

Bonjour,

et finalement ce n'est pas la réponse que je cherchais!

faut se connecter sur le serveur FTP pour pouvoir récupérer les donner avec un login et mdp!

j'utilise ftp_get !mais j'ai un petit souci:je n'arrive pas a trouver l'idée de tel façon quand je clic sur un fichier "comme y en a plusieurs" il j'arrive a l'ouvrir ou à le télécharger!!!je ne sais pas trop comment faire!"comme y en a

merci encore;)

je te remercie pour cette rapide réponse!

Voila le code que j'ai utilisé !!!

  1. function X($Y,$Z,$A,$B){
  2. $ftp= ftp_connect($Y);
  3.  
  4. $login_result= ftp_login($ftp,$Z,$A);
  5.  
  6. $fichier= "CHEMIN"/";
  7. //verification de la connexion
  8.  
  9. if((!$connftp)||(!$login_result)){
  10. echo"La connexion FTP a échoué";
  11. }
  12. else{
  13. echo "Connecté";
  14. }
  15. //Tenter de télécharger le fichier
  16.  
  17. $download= ftp_get($connftp, $local, $fichier, FTP_BINARY);
  18.  
  19.  
  20. if (!$download){
  21. echo" Le telechargement FTP a échoué!!!";
  22. }else{
  23. echo" Téléchargement DE $server_file de $ftp_server sur $mon_ordi ";
  24. }
  25.  
  26.  
  27. ftp_close($connftp);
  28.  
  29. return $fichier;
  30.  
  31. }


vu que y en a beaucoup "une liste de fichiers! " donc ???

merci;)

voila plus clair:

  1. functionX($Y, $Z, $A, $B){
  2.  
  3. $ftp= ftp_connect($Y);
  4.  
  5. $login_result= ftp_login($ftp,$Z,$B);
  6.  
  7. $dossier= "C:/";
  8. $fichier= "CHEMIN"/";
  9.  
  10.  
  11. if((!$ftp)||(!$login_result)){
  12. echo"La connexion a échoué";
  13. }
  14. else{
  15. echo "Connecté a $Y";
  16. }
  17. //Tenter de télécharger
  18.  
  19. $download= ftp_get($ftp, $dossier, $fichier, FTP_BINARY);
  20.  
  21.  
  22. if (!$download){
  23. echo" Le telechargement a échoué!!!";
  24. }else{
  25. echo" Téléchargement ";
  26. }
  27.  
  28.  
  29. ftp_close($ftp);
  30.  
  31. return $fichier;
  32.  
  33. }
Expert Programmation

Merci d'utiliser la balise "code" pour rendre plus propre et plus lisible tes posts.

Que veux tu faire exactement ? Envoyer à ta fonction la liste des fichiers à télécharger ou récupérer tous les fichiers qui sont sur le FTP (ou dans un répertoire du FTP) ?

J'ai déjà récupéré la liste de mes fichiers! mais ce que je veux faire:

quand je clic sur un fichier j'aurai la main pour le téléchargé! vu que c'est de gros fichiers on ne peut pas tout télécharger !avec cette fonction on

télécharge si on veut voir le contenu du fichier!

voila, j'espère que c'est plus clair!

merci encore;)
Lassé par la pub ? Créez un compte
Tom's guide dans le monde