Problème de téléchargement FTP

Problème de téléchargement FTP - PHP - Programmation

Marsh Posté le 27-07-2011 à 13:52:19    

Bonjour,  
 
Mon problème est le suivant: ce script fonctionne parfaitement sur mon portable avec XAMP, par contre sur le serveur de production, il ne fonctionne pas.  Ce serveur utilise PHP sous IIS.
 

Code :
  1. function ProcessLocalFile($File,$HeaderArray){
  2. if (file_exists($File)){
  3.  ProcessHeader($HeaderArray);
  4.  header('Content-Length: ' . filesize($File));
  5.  readfile($File);
  6. }
  7. else{
  8.  WriteError('Download_Error_FileNotFound');
  9. }
  10. }
  11. function ProcessFTPFile($Host,$Port,$Usr,$Paswd,$RemoteFile,$HeaderArray){
  12. $ftp_stream=ftp_connect($Host,$Port);
  13. If (ftp_login($ftp_stream, $Usr,$Paswd)){
  14.  $TempFilename = tempnam('./', 'php_tmp');
  15.  if (ftp_get($ftp_stream, $TempFilename , $RemoteFile, FTP_BINARY)){
  16.   ftp_close($ftp_stream);
  17.   ProcessLocalFile($TempFilename,$HeaderArray);
  18.   unlink($TempFilename);
  19.  }
  20.  else{
  21.   ftp_close($ftp_stream);
  22.   unlink($TempFilename);
  23.   WriteError('Download_Error_FTP_Read');
  24.  }
  25. }
  26. else{
  27.  ftp_close($ftp_stream);
  28.  WriteError('Download_Error_FTP_Login');
  29. }
  30. }


 
 
Les symptomes sont les suivant: Le fonctionnement semble correcte jusqu'à l'ouverture de la boite de dialogue pour sélectionner l'emplacement pour sauvegarder le fichier. Mais une fais la destination sélectionnée, le téléchargement du fichier ne démare pas.
 
Dans certains cas, le téléchagement se fait partiellement.
 
 
Quelqu'un a t'il une solution ?
 
Merci d'avance
Jacques
 
 
 
 
 
 

Reply

Marsh Posté le 27-07-2011 à 13:52:19   

Reply

Marsh Posté le 27-07-2011 à 14:10:41    

La fonction ftp_connect() et les autres de la famille ftp ne sont pas systématiquement permises sur les serveurs. Ce n'est pas forcément un problème IIS puisque, dans mon cas, c'est avec Apache que ça ne marche pas.  
Donc, je suis obligé de faire à la place un shell_exec("batch_faisant_du_ftp.sh" ) et c'est peut-être une solution pour vous aussi.

Reply

Marsh Posté le 27-07-2011 à 15:12:00    

y a des serveurs qui bloquent l'accès aux fonctions ftp_* et autorisent les appels à shell_exec ? [:delarue5]

Reply

Marsh Posté le 27-07-2011 à 16:04:13    

Oui, je ne l'invente pas.
 
Mais c'est une situation particulière, parce que c'est un serveur Apache bridé car il fait partie d'un package Oracle. Cependant, bien que nous ayons besoin de ce package, nous n'avons pas besoin de refuser les transferts FTP, car c'est pour un intranet, pas un internet, et en plus, on a besoin de FTP. Voili !

Reply

Marsh Posté le 29-07-2011 à 16:54:22    

Dans non cas, je n'ai aucune erreur qui s'affiche et le plus intriguant c'est que parfois, le téléchagement se fait partiellement.  
 

Reply

Sujets relatifs:

Leave a Replay

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