Bonjour,
J'ai un soucis avec la fonction ftp_nb_put de PHP.
Le script :
L'objectif :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($envoi)); $dossierCourant = ""; $connexion = ftp_connect("serveur"); $login = ftp_login($connexion,"login","password"); foreach ($iterator as $key) { if($key != "." AND $key != "..") { $source_file= $key; $destination_file = str_replace("\\","/",$destination_file); if ($dossierCourant != dirname($destination_file)) { $dossierCourant = dirname($destination_file); if (!@ftp_mkdir($connexion,$dossierCourant)) print "<p>creation echouee de :". dirname($destination_file)."</p>"; } // Initialisation du chargement $ret = ftp_nb_put($connexion,$destination_file,$source_file, FTP_BINARY); while ($ret == FTP_MOREDATA) { // Faites ce que vous voulez... echo "."; // Continue le chargement... $ret = ftp_nb_continue($connexion); } if ($ret != FTP_FINISHED) { echo "Il y a eu un problème lors du chargement du fichier..."; exit(1); } } } ftp_close($connexion);
Ce script sert a uploader un dossier ainsi que ses sous dossiers a partir du serveur courant vers un serveur distant disposant d'une connexion FTP.
La situation :
Nous sommes sur une station de travail testant des script php sous windows/EasyPhp. Le serveur distant est un serveur mutualise OVH.
Les symptomes :
Le soucis, c'est que de facon aleatoire ma connexion se coupe, j'ai un dernier fichier de 0 octets, qui arrive souvent sur le 22eme (qui ne contient rien d'extraordinaire, ni carcateres speciaux, ni nom bizarroide), j'ai aleatoirement, en cas de deuxieme ou troisieme tentative, une page de 0 octet qui arrive de temps en temps.
J'ai le message d'erreur suivant parfois :
Les tests :Warning: ftp_nb_put() [function.ftp-nb-put]: Failed to establish connection ...
Il y a eu un problème lors du chargement du fichier...
En connectant/déconnectant a chaque fichier, ça a l'air de mieux passer, mais j'ai toujours une réaction aléatoire, et le traitement est évidemment EXTREMEMENT long. Il est évident que la connexion/déconnexion a chaque fois n'est pas gerable.
Les questions :
- Les threds ftp_ sont instables a votre connaissance ?
- Je ne sais pas si ca peut avoir un rapport mais je travaille avec easyPHP en local vers un serveur distant. Un bug dans les dll ?
- Voyez vous une incohérence quelque part ?
D'avance merci.
Partager