Je rencontre un comportement étrange avec un simple script PHP qui télécharge un fichier sur un serveur FTP.Erreur de téléchargement ftp PHP
J'ai créé la version suivante dépouillée de mon code qui produit la même erreur:
<?php
error_reporting(E_ALL);
echo phpversion();
$ftpUrl = "mydomain";
$ftpUserName = "myuser";
$ftpPassword = 'mypass';
$fileContents = "test";
file_put_contents('text.txt', $fileContents);
//open ftp connection
$conn_id = ftp_connect($ftpUrl, 1030);
if(!$conn_id)
die('error while connecting to ftp');
$login_result = ftp_login($conn_id, $ftpUserName, $ftpPassword);
if (!$login_result)
die('ftp login failed!');
//switch to passive mode
ftp_pasv($conn_id, true);
//upload file to ftp
try
{
$fileToUpload = fopen('text.txt', 'r');
if($fileToUpload == false)
die('can\'t open file to send!');
$upload = ftp_fput($conn_id, 'testfile.txt', $fileToUpload, FTP_ASCII);
}
catch(Exception $e)
{
fclose($fileToUpload);
ftp_close($conn_id);
die('Error while uploading to ftp');
}
fclose($fileToUpload);
ftp_close($conn_id);
if (!$upload)
die('ftp upload failed');
>
Sur le serveur ftp du client je reçois l'erreur suivante lors de l'exécution du script. (L'erreur se produit lorsque vous essayez de télécharger le fichier, la mise en place de la connexion d'une exploitation forestière dans les travaux)
Warning: ftp_fput() [function.ftp-fput]: php_connect_nonb() failed: Operation now in progress (115) in {path} on line 38
Warning: ftp_fput() [function.ftp-fput]: Type set to A in {path} on line 38
ftp upload failed
- le même fichier Transfert avec filezilla à ce serveur ftp fonctionne très bien.
- Le fichier ne contient que quelques lignes de texte.
- Lors de l'exécution de ce script sur un serveur différent, cela fonctionne correctement.
Le serveur utilise la version php 5.3.28
J'ai eu du mal avec cette erreur pendant des heures maintenant et il me rend fou. Des indices?
'Type défini sur A' est la réponse du serveur FTP reconnaissant la demande de transfert du fichier en mode ASCII. – user3338098
Je crois que ce problème est dû à des problèmes de délai de connexion TCP/IP. – user3338098
Echec possible de ["php \ _connect \ _nonb(): L'opération en cours (115)" se produit par intermittence] (http://stackoverflow.com/questions/15688331/php-connect-nonb-failed-operation-now -in-progress-115-happens-intermitten) –