Ftp lecture sdcard

bonjour, désolé pour votre boule de cristal, elle ne devait pas être de bonne qualité car je ne suis pas un nouveau:-) certes cela fait un moment que je n’étais pas venu.
alors plus d'info c'est un montage avec un esp 8266, une sdcard, je veux transférer
le fichier sur ma sdcard en ftp avec le wifi. comme je mentionne la connexion fonctionne. je dois passer à cotés de quelque chose , mais quoi ?
voilà pourquoi je fais appel.merci
voilà le code:

#include <BufferedPrint.h>
#include <FreeStack.h>
#include <MinimumSerial.h>
#include <RingBuf.h>
#include <SdFat.h>
#include <SdFatConfig.h>
#include <sdios.h>


//SDfat grieman//

#ifdef ESP8266
#include <ESP8266WiFi.h>
#elif defined ESP32
#include <WiFi.h>
#include "SPIFFS.h"
#endif

#include <ESP8266FtpServer.h>
#include <SPI.h>
//#include "SdFat.h"
SdFat SD;
SdFile root;
const char* ssid = "xxxxxxx";
const char* password = "xxxxxxxxx";
const int chipSelect = D8;
FtpServer ftpSrv;   //set #define FTP_DEBUG in ESP8266FtpServer.h to see ftp verbose on serial
unsigned long previousMillis = 0;//on évite les delay quand on faite de l'acquisition de données
const long interval = 1000;

File file;

// Create a Serial output stream.
ArduinoOutStream cout(Serial);
//------------------------------------------------------------------------------


void setup(void) {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  Serial.println("");

  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());


  /////FTP Setup, ensure SPIFFS is started before ftp;  /////////

  /////FTP Setup, ensure SPIFFS is started before ftp;  /////////




  if (!SD.begin(chipSelect))

  { Serial.println("  ");
    Serial.println("initialisation carte memoire echouée!");
    return;
  }
  else
  {
    Serial.println("initialisation carte memoire reussie.");

    //username, password for ftp.  set ports in ESP8266FtpServer.h  (default 21, 50009 for PASV)
    //ftpSrv.begin("esp8266", "esp8266"); //ftpSrv.begin("esp32","esp32");    //username, password for ftp.  set ports in ESP32FtpServer.h  (default 21, 50009 for PASV)
  }
  if (SD.begin(chipSelect)) {
    Serial.println("SD opened!");
    // Change current directory to root.
    if (!SD.chdir()) {
       Serial.println("chdir to root failed.\n");
    }

    ftpSrv.begin("esp8266", "esp8266");   //username, password for ftp.  set ports in ESP8266FtpServer.h  (default 21, 50009 for PASV)
  }

  cout << F("\nList of files on the SD.\n");
  SD.ls("/", LS_R);
}


void loop(void) {
  ftpSrv.handleFTP();        //make sure in loop you call handleFTP()!!
  // server.handleClient();   //example if running a webserver you still need to call .handleClient();
  /* unsigned long currentMillis = millis();
    File essai =  SD.open("/", LS_R);//SD.open("/");


    if (currentMillis - previousMillis >= interval) {
     previousMillis = currentMillis;

     if (essai) {
       // sensors.requestTemperatures();
       // timeClient.update();

       String horaire = "12:00";//création de la variable String pour préparer l'envoi dans la mémoire
       float temperatures = 24.99;//pareil pour la température avec une varible flaot

       String data = horaire + "," + String(temperatures);//data sera enregistré dans la mémoire SPIFFS, on ajoute une virgule entre les deux valeurs pour pouvrois les séparer
       //et les rentrer facilement dans un tableur.

       essai.println (data);//on enregistre data dans la mémoire
       Serial.println (data);
     }
  */
}