zippé un fichier csv et l'envoyer sur ftp

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : zippé un fichier csv et l'envoyer sur ftp

Re: zippé un fichier csv et l'envoyer sur ftp

par Megadeth » 12 oct. 2015, 10:05

Salut,

Tu as déjà ton script php ?
Sinon jette un oeil ici : http://www.manuelphp.com/php/function.ftp-put.php

Pour l'exécution automatique, tu programmes un cron...tu as la main sur ton serveur ?

Mega
;)

Re: zippé un fichier csv et l'envoyer sur ftp

par julia » 10 oct. 2015, 08:36

Bonjour,

Je ne sais franchement pas par ou commencer.

Avez-vous une idée de départ ?

Cordialement.

Re: zippé un fichier csv et l'envoyer sur ftp

par julia » 27 juil. 2015, 16:01

Bonjour,

Merci je m'entraine ce soir, la encore ça va être une nouvelle étape nouvelle pour moi.. :shock:

a+

Re: zippé un fichier csv et l'envoyer sur ftp

par @rthur » 26 juil. 2015, 16:46

Donc effectivement c'est ftp_put() qu'il faut utiliser

Re: zippé un fichier csv et l'envoyer sur ftp

par julia » 26 juil. 2015, 13:33

Re-Bonjour,

Je vais tacher d'être clair.

Je souhaite envoyer un fichier csv à un site.

Il ne prend qu'un fichier zippé que j'envoie via ftp dont j'ai un accès en écriture uniquement.

Donc pour éviter de le faire manuellement je souhaite que ça se face automatiquement.

Les étapes précédentes avait pour but de transformer un xml en csv zippé qui est stocké sur l'un des dossiers du site web.

Est-ce plus claire maintenant ou il faut d'autres détails ?

Merci encore..

Re: zippé un fichier csv et l'envoyer sur ftp

par @rthur » 26 juil. 2015, 12:46

Merci mais please pas de moquerie alors..
Ah, je ne me permettrais pas... :D ...et puis c'est pas le genre de la maison... :^o
Pour moi ni l'un ni l'autre car même si je l'envoie sur un ftp, il est tout de même stocké dans un ftp ?! 8-|
Le truc c'est que j'ai un lien de fichier de stockage, pour moi il n'est pas en local..
Allez je pense que ftp_put() peut tout de même faire l'affaire.
Verdicte, suis-je à côté de la plaque ?
Le problème, c'est que je ne suis pas sûr de comprendre ce que tu veux faire pour pouvoir te répondre précisément.

Le FTP, c'est juste un système de transfert de fichier d'un ordinateur A à un autre ordinateur B.
Du coup, un fichier ne peut pas être "stocké dans un FTP", ça ne veut rien dire.
Il peut être stocké sur un ordinateur (ou serveur) lui-même accessible par FTP.

Dans le cas d'une utilisation avec PHP, il y a toujours 2 serveurs :
- le serveur local, c'est à dire le serveur où s'exécute ton script PHP.
- le serveur distant, c'est à dire un autre serveur où tu va récupérer ou déposer des fichiers.

Avec ftp_get(), tu vas récupérer des fichiers d'un serveur distant pour les enregistrer sur le serveur local (celui où s'exécute ton script PHP)
Avec ftp_put(), tu vas envoyer des fichiers qui sont sur le même serveur que ton script PHP (le serveur local) vers un autre serveur (le serveur distant).

Re: zippé un fichier csv et l'envoyer sur ftp

par julia » 26 juil. 2015, 12:29

Bonjour,

Merci mais please pas de moquerie alors..

Pour moi ni l'un ni l'autre car même si je l'envoie sur un ftp, il est tout de même stocké dans un ftp ?! 8-|

Le truc c'est que j'ai un lien de fichier de stockage, pour moi il n'est pas en local..

Allez je pense que ftp_put() peut tout de même faire l'affaire.

Verdicte, suis-je à côté de la plaque ?

Re: zippé un fichier csv et l'envoyer sur ftp

par @rthur » 26 juil. 2015, 06:42

Bon maintenant c'est envoyé le fichier stocké sur ftp, ça sera une première.
Faut t-il ftp_get() est bien pour le local et ftp_put() et pour envoyer depuis ftp c'est bien ça ?
A ton avis ? ;-)
ftp_get() télécharge le fichier remote_file depuis le serveur FTP, et le sauve dans le fichier local local_file.
ftp_put() enregistre le fichier local_file sur le serveur FTP.

Re: zippé un fichier csv et l'envoyer sur ftp

par julia » 26 juil. 2015, 04:55

Bonsoir,

Merci encore, effectivement c'est bien plus simple, j'ai du simplement créer le fichier zip.

Puis le code :

Code : Tout sélectionner

$zip = new ZipArchive; if ($zip->open('../contenu/lib/lecsv.zip') === TRUE) { $zip->addFile('../content/lib/lecsv.csv', 'lecsv.csv'); $zip->close(); echo 'ok'; } else { echo 'failed'; }
Bon maintenant c'est envoyé le fichier stocké sur ftp, ça sera une première.

Faut t-il ftp_get() est bien pour le local et ftp_put() et pour envoyer depuis ftp c'est bien ça ?

ftp_get à la suite de mon code me semble plus approprié non ?

Code : Tout sélectionner

<?php // Définition de quelques variables $local_file = 'local.zip'; $server_file = 'server.zip'; // Mise en place d'une connexion basique $conn_id = ftp_connect($ftp_server); // Identification avec un nom d'utilisateur et un mot de passe $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); // Tentative de téléchargement du fichier $server_file et sauvegarde dans le fichier $local_file if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) { echo "Le fichier $local_file a été écris avec succès\n"; } else { echo "Il y a un problème\n"; } // Fermeture de la connexion ftp_close($conn_id); ?>
Merci encore de toute aide.

Re: zippé un fichier csv et l'envoyer sur ftp

par julia » 24 juil. 2015, 10:50

Bonjour,

Merci, je m'y code ce soir..

a+

Re: zippé un fichier csv et l'envoyer sur ftp

par @rthur » 22 juil. 2015, 11:04

Bonjour Julia,

Regarde la doc de la fonction addfile() et notamment l'exemple 1 : http://php.net/manual/en/ziparchive.add ... xample-826

En fait dans ton code ci-dessous, tu fais des choses pas forcément utiles :
$nom_fichier1 = "../contenu/lib/lecsv.csv" ; //nom du fichier à compresser
 $fo = fopen($nom_fichier1,'r') ; //on ouvre le fichier
 $contenu = fread($fo, filesize($nom_fichier1)) ; //on enregistre le contenu
 fclose($fo) ; //on ferme le fichier
 
 $zip->addfile($contenu, $nom_fichier1) ; //on ajoute le fichier
En premier paramètre de addfile() tu peux directement mettre le chemin du fichier (pas besoin de récupérer son contenu)
Et en deuxième paramètre, et c'est là qu'est ton problème actuel, c'est le nom du fichier dans le zip avec son chemin éventuel. A l'heure actuelle, tu lui indiques "contenu/lib/lecsv.csv" alors que tu voudrais n'avoir que lecsv.csv

Re: zippé un fichier csv et l'envoyer sur ftp

par julia » 22 juil. 2015, 10:18

Bonjour,

Un petit up pour une idée ?!..

Merci d'avance..

Re: zippé un fichier csv et l'envoyer sur ftp

par julia » 14 juil. 2015, 14:39

Bonjour,

Avec quelques recherches de plus j'ai un code qui commence à marcher, je stock le fichier csv, je le zipp mais pas comme je le souhaite, je souhaite souhaite avoir que le fichier dans le zipp et là j'ai contenu/lib/lecsv.csv :

Code : Tout sélectionner

} $ocdb->closeDB();} $nom_fichier = "monscv"; header("Content-type: application/vnd.ms-excel"); //header("Content-disposition: csv" . date("Y-m-d") . ".csv"); header("Content-disposition: filename=" . $nom_fichier . ".csv"); $liste_csv = mb_convert_encoding($liste_csv, 'ISO-8859-1', 'UTF-8'); header("Content-type: text/csv; charset=UTF-8"); header("Content-disposition: attachment; filename=" . $nom_fichier . ".csv; charset=UTF-8"); file_put_contents('../contenu/lib/lecsv.csv', $liste_csv); $zip = new zipfile( ) ; //on crée une nouvelle instance zip $nom_fichier1 = "../contenu/lib/lecsv.csv" ; //nom du fichier à compresser $fo = fopen($nom_fichier1,'r') ; //on ouvre le fichier $contenu = fread($fo, filesize($nom_fichier1)) ; //on enregistre le contenu fclose($fo) ; //on ferme le fichier $zip->addfile($contenu, $nom_fichier1) ; //on ajoute le fichier $archive_zip = $zip->file() ; //on associe l'archive $open = fopen( "../contenu/lib/lecsv.zip" , "wb"); //crée le fichier zip fwrite($open, $archive_zip); //enregistre le contenu de l'archive fclose($open); //ferme l'archive //print $liste_csv; exit;
Merci de toute aide..

Re: zippé un fichier csv et l'envoyer sur ftp

par julia » 10 juil. 2015, 10:09

Bonjour,

Merci de votre retour.

mon csv fonctionne, si je vais sur son lien, exemple :

ht*p://monsite.fr/lien-de-mon-csv.csv quand je vais sur ce lien il se charge

je souhaite dans un premier temps le zippé pour pouvoir le transféré au ftp.

oui j'avais lu cette fonction au même titre que d'autres fonctions zipp mais j'ai cru comprendre que c'est pour faire du cron.

je ne suis déjà pas très douer pour du zipp alors le cron..

Re: zippé un fichier csv et l'envoyer sur ftp

par tof73 » 10 juil. 2015, 01:32

si l'accès au fichier csv pour son adresse http ne fonctionne pas, alors il reste http://php.net/manual/fr/function.file-put-contents.php à ajouter pour sauver une copie en local.