peterus / esp-ftp-server-lib Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
I use a ESP32-Wroom-32D custom board and I'm unable to connect to the FTP service because the directory "/" is not found. This confuses the FTP client and it disconnects (Cyberduck 7.10.2)
FS& gfs = LITTLEFS;
setup() {
...
ftp.addUser("admin", "admin");
ftp.addFilesystem("FS", &gfs);
ftp.begin();
}
loop() {
ftp.handle();
...
}
Also the windows command line tool can't open the root directory (so it seems not a client issue). Other directories work:
C:>ftp -d 192.168.178.118
Verbindung mit 192.168.178.118 wurde hergestellt.
220--- Welcome to FTP Server for ESP32 ---
220--- By Peter Buchegger ---
220 -- Version 0.1 ---
---> OPTS UTF8 ON
500 not implemented
Benutzer (192.168.178.118:(none)): admin
---> USER admin
331 OK. Password required
Kennwort:
---> PASS admin
230 OK.
ftp> LS
---> PORT 192,168,178,23,237,13
200 PORT command successful
---> LIST
150 Accepted data connection
550 Can't open directory /
ftp> CD /
---> CWD /
550 Directory does not exist
ftp> LS
---> PORT 192,168,178,23,237,23
200 PORT command successful
---> LIST
150 Accepted data connection
550 Can't open directory /
ftp> CD FS
---> CWD FS
250 Ok. Current directory is /FS
ftp> LS
---> PORT 192,168,178,23,237,33
200 PORT command successful
---> LIST
150 Accepted data connection
-rw-r--r-- 1 owner group 15 Jan 01 1970 .exclude.files
-rw-r--r-- 1 owner group 384 Jan 01 1970 config.json
drwxr-xr-x 1 owner group 0 Jan 01 1970 i18n
drwxr-xr-x 1 owner group 0 Jan 01 1970 www
226 4 matches total
FTP: 251 Bytes empfangen in 0.17Sekunden 1.46KB/s
ftp> bye
---> QUIT
221 Goodbye
libraries used:
me-no-dev/ESP Async WebServer@^1.2.3
arduino-libraries/NTPClient @ ^3.1.0
bblanchon/ArduinoJson @ ^6.18.3
lorol/LittleFS_esp32 @ ^1.0.6
makuna/NeoPixelBus@^2.6.7
arduino-libraries/ArduinoMqttClient @ ^0.1.5
peterus/ESP-FTP-Server-Lib@^0.9.6
Unfortunately the library does not compile for ESP8266.
I suppose the difference is in filesystem classes for two platforms. Apparently, nothing can be done here in simple ways.
The compiler output is below
Processing esp12e (platform: espressif8266; board: esp12e; framework: arduino)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via -v, --verbose
option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/esp12e.html
PLATFORM: Espressif 8266 (2.6.3) > Espressif ESP8266 ESP-12E
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
PACKAGES:
Terminal will be reused by tasks, press any key to close it.
Hi,
Thanks for your wonderful FTP server.
I was testing with ESP32 module (38 pin, Chip is ESP32-D0WDQ6 (revision v1.0)), ESP Arduino 2.0.10, and the latest ESP-FTP-Server-Lib.
Either using WinSCP or Filezilla, files can be uploaded or downloaded successfully without error notifications.
However, for unknown reasons some files are actually not completely transferred, as indicated by the size is less than the original file.
This is an example file:
https://drive.google.com/file/d/1bdaU4GCI2FMhASfk7SkDdKOKvaTC2E6O/view?usp=sharing
The original size is 573,825 bytes. But when it is uploaded to the SD Card of ESP32 FTP server, it becomes 573.440 bytes.
So the file becomes defective, and cannot be opened properly.
What may I have done wrong? Thanks for your guidance.
Hi,
I'm experiencing an issue after I upgraded the Espressif platform from V3.X to V4.4:
In file included from .pio/libdeps/lolin_d32_pro/ESP-FTP-Server-Lib/src/FTPCommand.h:7, from .pio/libdeps/lolin_d32_pro/ESP-FTP-Server-Lib/src/FTPConnection.h:7, from .pio/libdeps/lolin_d32_pro/ESP-FTP-Server-Lib/src/ESP-FTP-Server-Lib.h:8, from src/global.h:262, from src/main.cpp:4: .pio/libdeps/lolin_d32_pro/ESP-FTP-Server-Lib/src/FTPFilesystem.h: In member function 'virtual fs::FileImplPtr FTPFileImpl::openNextFile(const char*)': .pio/libdeps/lolin_d32_pro/ESP-FTP-Server-Lib/src/FTPFilesystem.h:84:46: error: invalid new-expression of abstract class type 'FTPFileImpl' return fs::FileImplPtr(new FTPFileImpl(next)); ^ .pio/libdeps/lolin_d32_pro/ESP-FTP-Server-Lib/src/FTPFilesystem.h:40:7: note: because the following virtual functions are pure within 'FTPFileImpl': class FTPFileImpl : public fs::FileImpl ^~~~~~~~~~~ In file included from .pio/libdeps/lolin_d32_pro/ESP-FTP-Server-Lib/src/FTPFilesystem.h:6, from .pio/libdeps/lolin_d32_pro/ESP-FTP-Server-Lib/src/FTPCommand.h:7, from .pio/libdeps/lolin_d32_pro/ESP-FTP-Server-Lib/src/FTPConnection.h:7, from .pio/libdeps/lolin_d32_pro/ESP-FTP-Server-Lib/src/ESP-FTP-Server-Lib.h:8, from src/global.h:262, from src/main.cpp:4: C:/Users/user/.platformio/packages/framework-arduinoespressif32/libraries/FS/src/FSImpl.h:39:18: note: 'virtual bool fs::FileImpl::setBufferSize(size_t)' virtual bool setBufferSize(size_t size) = 0; ^~~~~~~~~~~~~
Fyi: using PlatformIo
Thanks!
Version 0.11.0
.pio/libdeps/esp32cam/ESP-FTP-Server-Lib/src/FTPFilesystem.h: In member function 'virtual fs::FileImplPtr FTPFileImpl::openNextFile(const char*)':
.pio/libdeps/esp32cam/ESP-FTP-Server-Lib/src/FTPFilesystem.h:84:46: error: invalid new-expression of abstract class type 'FTPFileImpl'
return fs::FileImplPtr(new FTPFileImpl(next));
^
.pio/libdeps/esp32cam/ESP-FTP-Server-Lib/src/FTPFilesystem.h:40:7: note: because the following virtual functions are pure within 'FTPFileImpl':
class FTPFileImpl : public fs::FileImpl
^~~~~~~~~~~
In file included from .pio/libdeps/esp32cam/ESP-FTP-Server-Lib/src/FTPFilesystem.h:6,
from .pio/libdeps/esp32cam/ESP-FTP-Server-Lib/src/FTPCommand.h:7,
from .pio/libdeps/esp32cam/ESP-FTP-Server-Lib/src/FTPConnection.h:7,
from .pio/libdeps/esp32cam/ESP-FTP-Server-Lib/src/ESP-FTP-Server-Lib.h:8,
from src/main.cpp:26:
C:/Users/U/.platformio/packages/framework-arduinoespressif32/libraries/FS/src/FSImpl.h:39:18: note: 'virtual bool fs::FileImpl::setBufferSize(size_t)'
virtual bool setBufferSize(size_t size) = 0;
^~~~~~~~~~~~~
Compiling .pio\build\esp32cam\libfd6\WiFiClientSecure\esp_crt_bundle.c.o
*** [.pio\build\esp32cam\src\main.cpp.o] Error 1
Hello,
This library is so simple and functional, the only difficulty is that I'm using sdFat instead of the default SD that comes with ESP32 in Arduino. This is mostly to permit support for long filenames.
The line ftp.addFilesystem("SD", &SD);
on the example is therefore not accepted as argument.
How would it be possible to add support for sdFat?
Many thanks in advance.
Hi,
I like the integration and your ftp server.
Unfortunately, I try to connect to the server on the ESP32, the use put to put the file on the server. The file is afterwards present on the SD card, but it has 0 Bytes.
Any help appreciated, I would really like to integrate it into my project.
Program I use:
#if defined(ESP32)
#include <SD.h>
#include <WiFi.h>
#elif defined(ESP8266)
#include <ESP8266WiFi.h>
#include <FS.h>
#endif
#include "ESP-FTP-Server-Lib.h"
#include "FTPFilesystem.h"
#define WIFI_SSID "net"
#define WIFI_PASSWORD "pw"
#define FTP_USER "ftp"
#define FTP_PASSWORD "ftp"
#ifndef UNIT_TEST
FTPServer ftp;
void setup() {
Serial.begin(115200);
if (!SD.begin(5)) {
Serial.println("SD Card Mount Failed");
}
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(WIFI_SSID);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
ftp.addUser(FTP_USER, FTP_PASSWORD);
#if defined(ESP32)
ftp.addFilesystem("SD", &SD);
#endif
ftp.begin();
Serial.println("...---'''---...---'''---...---'''---...");
}
void loop() {
ftp.handle();
}
#endif
Hello!
I am very like your library. Thank you very much! It is very useful and flexible. It is good work
I suggest to include in the library some additional commands. It is OPTS, NOOP, FEAT and MLSD. I have made some code for it and add several lines to your file FTPConnection.cpp (See attached). I have already tested the corrected code for ESP32 and it does work.
Hello Peter,
Great library! Installed it on an Olimex ESP32 Gateway.
Running now on WiFi going to move it to RJ45/Ethernet.
Do you have any idea when you would expect version 1.0 for the passive mode
Regards
Bart
Add MLSD command
how to change FTP buf size?
Hello,
Thank for your library! I've used it in previous projects and it works like a charm.
However, building for ESP (using Arduino framework) generates some warning and an error.
This is my compilation output:
Compiling .pio\build\lolin_d32_proJAN\lib152\WiFi\WiFi.cpp.o
Compiling .pio\build\lolin_d32_proJAN\lib152\WiFi\WiFiAP.cpp.o
Compiling .pio\build\lolin_d32_proJAN\lib152\WiFi\WiFiClient.cpp.o
Compiling .pio\build\lolin_d32_proJAN\lib152\WiFi\WiFiGeneric.cpp.o
Compiling .pio\build\lolin_d32_proJAN\lib152\WiFi\WiFiMulti.cpp.o
Compiling .pio\build\lolin_d32_proJAN\lib152\WiFi\WiFiSTA.cpp.o
Compiling .pio\build\lolin_d32_proJAN\lib152\WiFi\WiFiScan.cpp.o
In file included from .pio/libdeps/lolin_d32_proJAN/ESP-FTP-Server-Lib/src/FTPCommand.h:7,
from .pio/libdeps/lolin_d32_proJAN/ESP-FTP-Server-Lib/src/FTPConnection.h:7,
from .pio/libdeps/lolin_d32_proJAN/ESP-FTP-Server-Lib/src/ESP-FTP-Server-Lib.h:8,
from src/main.cpp:2:
.pio/libdeps/lolin_d32_proJAN/ESP-FTP-Server-Lib/src/FTPFilesystem.h:57:24: warning: extra tokens at end of #ifdef directive
#ifdef ESP_IDF_VERSION && ESP_IDF_VERSION_VAL
^~
.pio/libdeps/lolin_d32_proJAN/ESP-FTP-Server-Lib/src/FTPFilesystem.h: In member function 'virtual fs::FileImplPtr FTPFileImpl::openNextFile(const char*)':
.pio/libdeps/lolin_d32_proJAN/ESP-FTP-Server-Lib/src/FTPFilesystem.h:84:46: error: invalid new-expression of abstract class type 'FTPFileImpl'
return fs::FileImplPtr(new FTPFileImpl(next));
^
.pio/libdeps/lolin_d32_proJAN/ESP-FTP-Server-Lib/src/FTPFilesystem.h:40:7: note: because the following virtual functions are pure within 'FTPFileImpl':
class FTPFileImpl : public fs::FileImpl
^~~~~~~~~~~
In file included from .pio/libdeps/lolin_d32_proJAN/ESP-FTP-Server-Lib/src/FTPFilesystem.h:6,
from .pio/libdeps/lolin_d32_proJAN/ESP-FTP-Server-Lib/src/FTPCommand.h:7,
from .pio/libdeps/lolin_d32_proJAN/ESP-FTP-Server-Lib/src/FTPConnection.h:7,
from .pio/libdeps/lolin_d32_proJAN/ESP-FTP-Server-Lib/src/ESP-FTP-Server-Lib.h:8,
from src/main.cpp:2:
C:/Users/user/.platformio/packages/framework-arduinoespressif32/libraries/FS/src/FSImpl.h:39:18: note: 'virtual bool fs::FileImpl::setBufferSize(size_t)'
virtual bool setBufferSize(size_t size) = 0;
^~~~~~~~~~~~~
*** [.pio\build\lolin_d32_proJAN\src\main.cpp.o] Error 1
======================================================================================== [FAILED] Took 9.45 seconds =======================================================================================
Hope you can help me out here
Thanks!
I have tried to run the sample in VSC with ESP32 S2 and I receive the following error:
virtual boolean FTPFileImpl::seekDir(long int)' marked 'override', but does not override
what is wrong?
Version 0.11.0
ESP32
PlatformIO (most recent version)
Hi,
I’m using the ftp-server with 2 file systems in parallel, LittleFS and SD.
Everything works as expected. Thanks for your great contribution.
Question:
Is there a way to retrieve some status information about the ftp transfer from inside the ESP program? For instance the program needs to react on "New connection" resp. "Connection close". But info about transfer completion would also be useful.
Do you have any hint?
Thanks in advance
Appreciate the library trying to get it working but receiving compile errors below:
In file included from C:\Users\val\OneDrive\Documents\Arduino\libraries\ESP-FTP-Server-Lib-master\src/FTPCommand.h:7:0,
from C:\Users\val\OneDrive\Documents\Arduino\libraries\ESP-FTP-Server-Lib-master\src/FTPConnection.h:7,
from C:\Users\val\OneDrive\Documents\Arduino\libraries\ESP-FTP-Server-Lib-master\src/ESP-FTP-Server-Lib.h:8,
from C:\Users\val\OneDrive\Documents\Arduino\YEA\YEA.ino:10:
C:\Users\val\OneDrive\Documents\Arduino\libraries\ESP-FTP-Server-Lib-master\src/FTPFilesystem.h:61:52: error: missing binary operator before token "("
#if ESP_ARDUINO_VERSION >= ESP_ARDUINO_VERSION_VAL(2, 0, 3)
PASV
I compiled your example on ESP8266 with Platform IO as is. SPIFFS was built and uploaded. My FTP client connects successfully. But on a "ls"-command the server crashes with reboot in file NLST.h around line 27 in statement
File f = dir.openNextFile();
with
--------------- CUT HERE FOR EXCEPTION DECODER ---------------
Exception (28):
epc1=0x40205725 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000
stack>>>
Any idea?
hi i am on an mac an use filzilla and the examplesketch on esp32 without sd
what am i missing ? is there a permission in the esp32 code i can activate?
or are the filzilla setttings wrong?
hi.
Thanks for the good code.
Are you planning on using AsyncTcp(async server)?
HI,
Like to try your library but get on ESP32 a link error:
undefined reference to `fs::FileImpl::getNextFileName(bool*)'
collect2.exe: error: ld returned 1 exit status
*** [.pio\build\esp32dev\firmware.elf] Error 1
Any idea?
Thanx Bart
First of all: Thanks a lot! It works really super stable and is very fast in the upload compared to other solutions.
The issue I have:
If the files contain spaces (or other non-standard characeters) the file won't be created on the filesystem with this name.
Changing the charset to force UTF8 or something else does not help.
With spaces it only takes the first part to the first space (file completely fine).
With special characters (like "ö" or "ß" or so) it does not work at all.
In the other direction (Download from FTP server) the same thing, but It fails in both cases.
Also creating folders with spaces has the same issue (will only create the part before the first space).
Is there a fix or workaround already available?
I'm using the ES32 with the SDMMCFS.
Configuration: Windows 10, Visual Studio Code 1.71.2, Platform ESP8266 4.0.1
Good morning to Austria!
I'd like to use this nice FTP-Client but I fail ....
Using your original example test.cpp, exchange credentials for my network access and my FTP-Server, build and upload it in a ESP8266. After correctly connecting to my network I start the FTP-Server and want to establish a session with this client. Then:
`
10:16:47.304 > .......
10:16:51.648 > Connected to XYZ
10:16:51.649 > IP address: 192.168.0.88
10:16:51.651 > ...---'''---...---'''---...---'''---...
10:17:05.349 > New Connection from 192.168.0.110:63988
10:17:05.423 > USER XXX
10:17:05.484 > PASS YYY
10:17:05.592 > SYST
10:17:05.653 > FEAT
10:17:05.717 > HELP SITE
10:17:05.718 > 500 Unknown command
10:17:05.997 > OPTS UTF8 ON
10:17:06.150 > PWD
10:17:06.408 > TYPE A
10:17:06.494 > PORT 192,168,0,110,249,245
10:17:06.555 > MLSD
10:17:06.561 >
10:17:06.561 > --------------- CUT HERE FOR EXCEPTION DECODER ---------------
10:17:06.567 >
10:17:06.567 > Exception (28):
10:17:06.568 > epc1=0x4020613d epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000
10:17:06.576 >
10:17:06.576 > >>>stack>>>
10:17:06.577 >
10:17:06.577 > ctx: cont
10:17:06.578 > sp: 3ffffb90 end: 3fffffc0 offset: 0190
10:17:06.582 > 3ffffd20: 00000000 3ffffe4c 3ffffe78 40205309
10:17:06.587 > 3ffffd30: 00000000 3fff139c 00000000 4020589d
10:17:06.591 > 3ffffd40: 3fff139c 3fff1664 3ffffe78 40212150
10:17:06.596 > 3ffffd50: 3fff1664 3ffffe4c 3ffffd70 402063b8
10:17:06.600 > 3ffffd60: 3fff13b0 3fff0474 3fff0474 40205d58
10:17:06.605 > 3ffffd70: 3ffffd70 3ffffd70 00000000 3fff106c
10:17:06.609 > 3ffffd80: 3ffffe4c 3ffeebd0 3fff0f64 402034c3
10:17:06.614 > 3ffffd90: 00004adc 3fff0be8 00000274 4021c754
10:17:06.619 > 3ffffda0: 00000000 00000000 00000000 40100164
10:17:06.623 > 3ffffdb0: 40102209 00000000 00000005 40101dd8
10:17:06.627 > 3ffffdc0: 3ffe9525 4010506f 3ffecfb0 00040000
10:17:06.633 > 3ffffdd0: 40102963 3ffecfb0 00040000 401058e9
10:17:06.637 > 3ffffde0: 00007fff 0125531f 3ffed880 40102b40
10:17:06.642 > 3ffffdf0: 3ffe9db8 00000000 00000000 00000001
10:17:06.646 > 3ffffe00: 00000000 40204c7c 3ffffe70 402071c0
10:17:06.651 > 3ffffe10: 000003ad 00000000 3ffffec8 402071f1
10:17:06.655 > 3ffffe20: 00000000 00000000 3ffffec8 40204c8a
10:17:06.659 > 3ffffe30: 3fff0d94 00000000 00000000 3ffffe70
10:17:06.663 > 3ffffe40: 000003a6 000003a6 3ffe8644 401006fb
10:17:06.668 > 3ffffe50: 000003a1 000003a1 3ffe8644 3fff11bc
10:17:06.673 > 3ffffe60: 00000000 00000002 3ffe8dd5 40209734
10:17:06.677 > 3ffffe70: 3ffe8dd6 00000004 40212e4c 00000000
10:17:06.682 > 3ffffe80: 000003e8 00000004 00000000 3fff139c
10:17:06.686 > 3ffffe90: 3fff1664 00000000 00000000 00000000
10:17:06.691 > 3ffffea0: 00000000 3ffffef0 3ffffefc 3fff106c
10:17:06.695 > 3ffffeb0: 3ffffefc 3ffffef0 00000001 40204076
10:17:06.700 > 3ffffec0: 00000000 3fff0d00 00000000 00000000
10:17:06.704 > 3ffffed0: 3ffe8d00 00000000 3fff0f64 3fff106c
10:17:06.709 > 3ffffee0: 3ffffefc 3fff040c 3fff0404 40205270
10:17:06.714 > 3ffffef0: 3ffffefc 3fff049c 00000001 44534c4d
10:17:06.719 > 3fffff00: 00000000 04000000 3ffeecb8 00000030
10:17:06.723 > 3fffff10: 3fff043c 3fff10b4 00000001 00000002
10:17:06.728 > 3fffff20: 3fff105c 3fff171c 3ffeeb90 40204e54
10:17:06.731 > 3fffff30: 00000000 00000000 00000010 3ffeecb8
10:17:06.737 > 3fffff40: 3ffeebc4 3fff171c 3ffeeb90 40202420
10:17:06.741 > 3fffff50: 3fff0404 3fff1704 00001388 402068c4
10:17:06.745 > 3fffff60: 007a1200 5fe39865 3fff0400 00000000
10:17:06.750 > 3fffff70: 00000000 3fff1704 00000000 00000000
10:17:06.754 > 3fffff80: 00000000 00000000 00000001 3ffeecb8
10:17:06.758 > 3fffff90: 3fffdad0 00000000 3ffeeca4 40201144
10:17:06.763 > 3fffffa0: 3fffdad0 00000000 3ffeeca4 40207bb4
10:17:06.768 > 3fffffb0: feefeffe feefeffe 3ffe8640 40100c61
10:17:06.772 > <<<stack<<<
10:17:06.773 >
10:17:06.773 > --------------- CUT HERE FOR EXCEPTION DECODER ---------------
`
Do you have any idea what I can improve to make it run?
Thank you in advance
Andree
Dear developer, good Afternoon.
First, thank you for sharing your library.
I'd like to contribute with an issue report.
I've been using your library for connecting an ESP32 to FileZilla and I've found an issue that possibly regard internal CWD command.
The context is an application written in PlatformIO, using FreeRTOS. The setup() function calls:
`
...
servidorFTP.addUser(FTP_user, FTP_psw);
// servidorFTP.setFilesystem(&SD);
// servidorFTP.setFilesystem(&SPIFFS);
servidorFTP.addFilesystem("SD", &SD);
servidorFTP.addFilesystem("SPIFFS", &SPIFFS);
servidorFTP.begin();
...
`
When connecting through FileZilla, connection and access to ESP32 look fine, like this:
`
New Connection from 192.168.5.107:58471
USER base
PASS dados
CWD /SD
TYPE I
PASV
500 Unknown command
PORT 192,168,5,107,228,140
MLSD
`
And I can access, for example, "/SD" folder
But then, when I try to access some subfolder, the command is received in ESP32 like that:
`
CWD /SD/Teste05
[E][vfs_api.cpp:64] open(): /sd/SD/Teste05 does not exist
`
And FileZilla reports that this directory doesn't exist:
Would this be a failure, or should I fix something in my code?
Thank you.
Regards, Ciro Bruno.
Hello,
compiling the example (test.cpp) I got error:
In file included from lib/ESP-FTP-Server-Lib/src/FTPCommand.h:7,
from lib/ESP-FTP-Server-Lib/src/FTPConnection.h:7,
from lib/ESP-FTP-Server-Lib/src/ESP-FTP-Server-Lib.h:8,
from src/main.cpp:10:
lib/ESP-FTP-Server-Lib/src/FTPFilesystem.h: In member function 'virtual fs::FileImplPtr FTPFileImpl::openNextFile(const char*)':
lib/ESP-FTP-Server-Lib/src/FTPFilesystem.h:79:46: error: invalid new-expression of abstract class type 'FTPFileImpl'
return fs::FileImplPtr(new FTPFileImpl(next));
^
lib/ESP-FTP-Server-Lib/src/FTPFilesystem.h:40:7: note: because the following virtual functions are pure within 'FTPFileImpl':
class FTPFileImpl : public fs::FileImpl
^~~~~~~~~~~
In file included from lib/ESP-FTP-Server-Lib/src/FTPFilesystem.h:6,
from lib/ESP-FTP-Server-Lib/src/FTPCommand.h:7,
from lib/ESP-FTP-Server-Lib/src/FTPConnection.h:7,
from lib/ESP-FTP-Server-Lib/src/ESP-FTP-Server-Lib.h:8,
from src/main.cpp:10:
/home/lfirnaga/.platformio/packages/framework-arduinoespressif32/libraries/FS/src/FSImpl.h:41:25: note: 'virtual const char* fs::FileImpl::path() const'
virtual const char* path() const = 0;
^~~~
*** [.pio/build/esp32dev/src/main.cpp.o] Error 1
Could you please help what is the solution?
The environment:
platformio
platform = espressif32
board = esp32dev
framework = arduino
ide: eclipse
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.