CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[PHP] Télécharger fichier .zip distant

Ez-Toni
Ez-Toni
Niveau 10
23 septembre 2011 à 18:09:18

Salut

pour une boutique en ligne, je cherche à faire une gestion des stock automatisée.

Pour cela le fournisseur met à disposition un fichier .zip contenant un .csv avec la liste produit et stock..

pour la partie traitement pas de problème, j'arrive à dé-zipper, lire le .csv, traiter les données, insérer en bdd..

par contre je me heurte au problème de base, je n'arrive pas à récupérer le fichier .zip se trouvant sur le serveur du fournisseur, afin de le placer dans mon serveur pour traitement.

Si quelqu'un saurait me donner une piste ?

j'ai testé avec diverses fonctions trouvées sur le net, mais j'ai l'impression que le fait que ce soit un .zip pose problème, mais je me trompe peut-être.

help please ^^

godrik
godrik
Niveau 30
23 septembre 2011 à 18:10:17

man wget

deepblue
deepblue
Niveau 16
23 septembre 2011 à 20:52:37

ou curl ou shell_exec('wget foo.com/foo.zip');

Ez-Toni
Ez-Toni
Niveau 10
23 septembre 2011 à 21:25:36

merci beaucoup pour vos réponses ! je teste dès demain au boulo ^^

après de nombreux tests, je me demande si le fait que l'URL du fichier soit URL-rewritée (on se comprend ^^), ne pose pas problème.

le fournisseur en question m'a donné cette adresse pour récupérer son fichier stock :

http://site.fr/user/login/userid/<NOMUTILISATEUR>/password/<PASS>/page/L9V5aH9kdR2jq9itfr9hZF2=

:hum:

je crains qu'aucune méthode de récupération de fichier par URL ne fonctionne avec cette adresse :question:

deepblue
deepblue
Niveau 16
23 septembre 2011 à 22:07:00

tu vas récupérer la même chose que ton navigateur web à cette url.

Ez-Toni
Ez-Toni
Niveau 10
23 septembre 2011 à 22:25:19

okay :ok: hâte de tester ^^

tu vois il n'y a même pas le nom du fichier (ni son extension zip) dans l'URL, c'est pour ça que je suis perplexe :malade:

deepblue
deepblue
Niveau 16
23 septembre 2011 à 22:58:02

Les extensions sont juste là pour faire joli (ou pour les mauvais OS </troll>). Ce qui compte, c'est le Content-type renvoyé à ton client (tu pourras t'assurer, en théorie, que tu reçois bien le bon type de fichier).

Ez-Toni
Ez-Toni
Niveau 10
24 septembre 2011 à 12:48:31

arf c'est ce je pensais, la methode semble fonctionner, mais j'obtiens un fichier .zip de 8426 Octets alors que le fichier devrait peser entre 1 et 2 Mo

j'obtiens ce même fichier de 8426 octets quand j'utilise un logiciel de téléchargement (j'ai testé avec Star Downloader).

Quand je passe par le navigateur, j'entre l'adresse
http[.............]/page/L9V5aH9kdR2jq9itfr9hZF2=
et cela enclenche le téléchargement du zip (1 à 2 Mo)

je suis un peu embêté...
:non2:

Nick_Bruiser
Nick_Bruiser
Niveau 8
24 septembre 2011 à 13:22:44

copy()
http://php.net/manual/fr/function.copy.php

Ez-Toni
Ez-Toni
Niveau 10
24 septembre 2011 à 13:32:50

merci pour ta réponse, mais copy est la premiere fonction que j'avais testé :-(
mais là encore j'obtiens un fichier .zip de 8426 octets

deepblue
deepblue
Niveau 16
24 septembre 2011 à 14:21:12

et wget via shell_exec ?

Kaoron
Kaoron
Niveau 9
24 septembre 2011 à 14:52:50

Et appeler le service tech de ton fournisseur pour leur expliquer ton problème ?

Ez-Toni
Ez-Toni
Niveau 10
24 septembre 2011 à 15:13:11

j'essaye ^^
je n'ai jamais utilisé shell_exec & wget

j'ai essayé cette commande
echo
shell_exec('http://www.site.fr/user/login/userid/X
XXX/password/YYYY/page/L9V5aH9kdR2jq9itfr9hZF2= 2>&1');

mais, euh rien ^^
je crois que j'utilise mal cette fonction

Ez-Toni
Ez-Toni
Niveau 10
24 septembre 2011 à 15:15:44

Oui Kaoron j'ai biensur essayé mais bon on est petit, ils sont ... trés gros, parlent un peu de haut

"il suffit de créer un script qui récupère le fichier !! vos concurrents y arrivent !" :hum:

Kaoron
Kaoron
Niveau 9
24 septembre 2011 à 15:36:40

«Oui Kaoron j'ai biensur essayé mais bon on est petit, ils sont ... trés gros, parlent un peu de haut
"il suffit de créer un script qui récupère le fichier !! vos concurrents y arrivent !" :hum: »

Ignore la condescendance, c'est du B2B, c'est comme le tennis le but du jeu c'est de se renvoyer la balle :D.

Exécute la commande "wget <URL>" d'abord en console pour vérifier que le fichier est correctement récupéré. Si ce n'est pas le cas, envoie leur un mail expliquant que tu n'arrives pas à télécharger le fichier en précisant la commande et avec le fichier reçu en pièce jointe.

Si le fichier est correctement récupéré alors utilise shell_exec dans ton script de la manière indiquée par deepblue plus haut :
shell_exec('wget <url>');
Si le fichier récupéré est différent de celui récupéré en ligne de commande (y'a pas de raison, mais bon), même plan : envoie leur un mail avec l'instruction shell_exec et le fichier reçu en pièce jointe.

Techniquement, sans l'url réelle on ne peut pas t'aider plus, donc c'est vers ton fournisseur qu'il faut te tourner, même si tu dois apprendre un truc tout bête et ne pas te montrer sous ton meilleur jour face à un gros poisson. Ça t'arrivera plus d'une fois, autant t'y frotter sur des petits problèmes sans conséquences.

Ez-Toni
Ez-Toni
Niveau 10
24 septembre 2011 à 16:32:48

merci on se comprend :rire:

je leur ai préparé un mail, je pense en effet ne pas avoir toutes les informations pour télécharger ce fichier..

Ez-Toni
Ez-Toni
Niveau 10
25 septembre 2011 à 23:44:24

bon c'est résolu ^^ en utilisant cURL :ok:
merci deepblue :ok:

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment