Enregistrer automatiquement des fichiers téléchargés

Enregistrer automatiquement des fichiers téléchargés - PHP - Programmation

Marsh Posté le 23-11-2005 à 12:29:33    

Bonjour !
 
Merci pour votre aide au sujet de mon problème suivant que je n'arrive pas à résoudre en PHP :
 
J'effectue des requêtes sur des sites Internet de type www.SITE.com/download.php?[variables=VAR]
Chaque requête me propose de télécharger un fichier (fenêtre classique : ouvrir/enregistrer/annuler).
Comment faire pour :
1) enregistrer automatiquement le fichier à un emplacement donné sur mon disque dur ? (i.e. pas de fenêtre intempestive)
2) attribuer un nom spécifique à chaque fichier téléchargé ?
 
Merci beaucoup.

Reply

Marsh Posté le 23-11-2005 à 12:29:33   

Reply

Marsh Posté le 23-11-2005 à 12:33:05    

pas possible!!! Tu peux pas forcer le téléchargement d'un fichier ...  
 
 
A moins que ... ptet elles viennent de là les videos avec les chevres ...

Reply

Marsh Posté le 23-11-2005 à 13:26:49    

Je suis vraiment déçu... aucune solution même la plus barbare qui soit ?

Reply

Marsh Posté le 23-11-2005 à 13:37:24    

curl ou wget.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 23-11-2005 à 14:13:29    

wget ? je ne trouve pas la fonction dans php... ?

Reply

Marsh Posté le 23-11-2005 à 16:17:17    

idy a écrit :

wget ? je ne trouve pas la fonction dans php... ?

normal, c'est un outil qui n'a rien à voir avec php, mais tu peux l'appeler depuis php
http://www.gnu.org/software/wget/wget.html

Reply

Marsh Posté le 23-11-2005 à 22:47:13    

J'ai essayé :
 

Code :
  1. $ch = curl_init();
  2. curl_setopt($ch, CURLOPT_URL, 'c:/test.txt');
  3. echo $content = curl_exec ($ch);
  4. curl_close ($ch);


 
mais je n'obtiens rien...
 
Merci pour votre aide.
 

Reply

Marsh Posté le 20-11-2010 à 04:40:53    

Salut !
 
Je remonte ce topic, certes de loin, mais je n'ai trouvé nulle part trace d'une réponse à cette question.
 
Comment enregistrer automatiquement un fichier qui est proposé à l'enregistrement par cette fenêtre "ouvrir/enregistrer/annuler" ?  :??:

Reply

Marsh Posté le 21-11-2010 à 23:28:01    

imagine ce qu'on pourrait te faire enregistrer sur ton disque dur si ce que tu demandes pouvait être permis ... Alors une bonne fois pour toutes, NON on ne peut pas forcer l'enregistrement sur un endroit spécifique parce que d'une part tu ne connais pas l'arborescence (si ton visiteur est sous linux, mac OS ou windows c'est pas pareil), ensuite parce que tu n'as pas forcément le droit d'écrire dans tous les dossiers ...


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 22-11-2010 à 00:30:44    

Non non, je me suis mal exprimé  :non:  :
 
Ce n'est pas mon fichier php qui enregistrerai un fichier sur le poste d'un visiteur, mais plutôt qui viendrai lire un fichier provenant d'un autre site.
 
Je n'ai pas de lien direct pour ce fichier, mais lorsque je veux le récupérer "à la main", j'accède à une page html, qui semble "vide" (en fait je n'arrive pas à voir le source de cette page) et une fenêtre pop-up s'ouvre et me propose d'ouvrir ou d'enregistrer le fichier, ou encore d'annuler :
 
http://img507.imageshack.us/img507/1521/20101122002847.gif
 
Mon souhait est de lire ce fichier en php, pour pouvoir en retirer certaines infos utiles.
 
J'espère avoir été plus clair, désolé  :jap:

Reply

Marsh Posté le 22-11-2010 à 00:30:44   

Reply

Marsh Posté le 22-11-2010 à 13:45:07    

un simple file_get_contents fera l'affaire


Message édité par stealth35 le 22-11-2010 à 13:45:49
Reply

Marsh Posté le 23-11-2010 à 01:18:43    

Salut, et merci pour ta réponse.
Mais ça ne marche pas : j'ai un beau "failed to open stream: HTTP request failed! HTTP/1.1 401 Unauthorized"...
 :cry:  
Même avec le Dragonfly d'Opera, aucune info.

Reply

Marsh Posté le 23-11-2010 à 11:13:04    

et avec le navigateur le lien marche ?

Reply

Marsh Posté le 23-11-2010 à 14:31:21    

Oui !  :??:  
 
Si tu veux faire l'essai, je peux te passer le lien...

Reply

Marsh Posté le 23-11-2010 à 18:28:57    

ajoute un user-agent a ton file_get_contents

Reply

Marsh Posté le 23-11-2010 à 20:56:17    

Euh... je ne sais pas ce que c'est.
Je crois que je vais laisser tomber, tant pis.
 
Merci quand-même pour ton aide  :jap:

Reply

Marsh Posté le 23-11-2010 à 23:46:17    

Erreur 401 c'est probablement une page auquelle on accède avec un mot de passe et un login. Il faut forger la requête correctement pour qu'elle soit acceptée par le serveur : http://www.w3.org/Protocols/HTTP/HTRQ_Headers.html (Authorization, Referer, Cookies, User-agent etc.)
 
Pour injecter les headers de ton choix :

Code :
  1. // http://php.net/manual/fr/function. [...] ntents.php
  2. // Création d'un flux
  3. $opts = array(
  4.   'http'=>array(
  5.     'method'=>"GET",
  6.     'header'=>"Accept-language: en\r\n" .
  7.               "Cookie: foo=bar\r\n"
  8.   )
  9. );
  10. $context = stream_context_create($opts);
  11. // Accès à un fichier HTTP avec les entêtes HTTP indiqués ci-dessus
  12. $file = file_get_contents('http://www.example.com/', false, $context);

Reply

Marsh Posté le 24-11-2010 à 04:35:26    

Merci pour vos réponses  :jap:  
Mais là ça va beaucoup trop loin pour moi. Je débute à peine  :whistle:  
Pas trop le temps de m'y atteler, je verrai ça plus tard.
 
Mais encore merci pour tout  :hello:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed