Se connecter / S'enregistrer
Votre question

Telechrger des fichiers !

Tags :
  • Serveur
  • Programmation
Dernière réponse : dans Programmation
20 Mai 2011 10:59:23

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

a c 145 L Programmation
20 Mai 2011 11:27:27

Ca se fait assez simplement:
  1. <?php
  2. $fichier = 'http://www.domain.com/fichier.ext';
  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. ?>
m
0
l
20 Mai 2011 11:36:19

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!
m
0
l
Contenus similaires
20 Mai 2011 11:45:56

plutot "ext"! c'est quoi?
m
0
l
a c 145 L Programmation
20 Mai 2011 14:20:40

ext = extension.
Autrement dit, "fichier.ext" peut être mavideo.avi comme mapresentation.ppt ou monfichier.txt
m
0
l
20 Mai 2011 14:40:37

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;)
m
0
l
27 Mai 2011 17:49:43

au fait ,

je me demande pourquoi vous avez utilisé "header", je pense que header que pour Java !

merci
m
0
l
27 Mai 2011 20:17:56

Bonjour,

header(); permet de déclarer l'en-tête HTTP lors de l'envoi du fichier.
m
0
l
a c 145 L Programmation
27 Mai 2011 21:42:43

Et on retrouve assez souvent les même mot-clés dans différents langages, aucun terme n'est réservé à un langage en particulier.
m
0
l
6 Juin 2011 10:06:50

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
m
0
l
6 Juin 2011 15:09:27

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: 

++;)
m
0
l
a c 145 L Programmation
6 Juin 2011 15:35:13

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()
m
0
l
6 Juin 2011 16:31:13

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??,
m
0
l
a c 145 L Programmation
6 Juin 2011 16:46:20

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.
m
0
l
6 Juin 2011 16:52:05

ok ,

excuse moi, ben là je vais réfléchir et pourtant ce que j'essaye de faire!

désolé;

m
0
l
9 Juin 2011 11:58:16

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 ;) 


m
0
l
a c 145 L Programmation
9 Juin 2011 12:32:03

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. ?>
m
0
l
9 Juin 2011 13:36:45

Merci Bcp! c'est ce que je cherchais ;) 

je vais tester tout ça!
m
0
l
9 Juin 2011 17:15:43

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 = 'http://www.domain.com/fichier.ext';
  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 ;++
m
0
l
9 Juin 2011 17:34:23

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 :??: 
m
0
l
17 Juin 2011 11:53:11

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;)
m
0
l
a c 145 L Programmation
17 Juin 2011 11:58:55

Si tu nous montrais ton code et que tu expliquais bien clairement le processus que tu veux obtenir ? Pas forcément avec des termes techniques, mais que l'on y voit clair.
m
0
l
17 Juin 2011 12:10:01

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;)
m
0
l
17 Juin 2011 12:19:55

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. }
m
0
l
a c 145 L Programmation
17 Juin 2011 12:21:45

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) ?
m
0
l
17 Juin 2011 12:28:26

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;)
m
0
l
22 Juin 2011 09:37:54

J'ai trouvé la solution

je vous remercie pour votre aide

++;)
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS