|
|
4 лет назад | |
|---|---|---|
| .. | ||
| main | 4 лет назад | |
| CMakeLists.txt | 6 лет назад | |
| Makefile | 5 лет назад | |
| README.md | 4 лет назад | |
| http_server_file_serving_test.py | 4 лет назад | |
| partitions_example.csv | 5 лет назад | |
| sdkconfig.ci | 4 лет назад | |
| sdkconfig.ci.sdcard | 4 лет назад | |
| sdkconfig.defaults | 6 лет назад | |
| Supported Targets | ESP32 | ESP32-S2 | ESP32-C3 |
|---|
(See the README.md file in the upper level 'examples' directory for more information about examples.)
If the SD card option is enabled, you can access files in the SD card by the path /sdcard
HTTP file server example demonstrates file serving with both upload and download capability, using the esp_http_server component of ESP-IDF. The following URIs are provided by the server:
| URI | Method | Description |
|---|---|---|
index.html |
GET | Redirects to / |
favicon.ico |
GET | Browsers use this path to retrieve page icon which is embedded in flash |
/ |
GET | Responds with webpage displaying list of files on SPIFFS and form for uploading new files |
/<file path> |
GET | For downloading files stored on SPIFFS |
/upload/<file path> |
POST | For uploading files on to SPIFFS. Files are sent as body of HTTP post requests |
/delete/<file path> |
POST | Command for deleting a file from SPIFFS |
File server implementation can be found under main/file_server.c which uses SPIFFS for file storage. main/upload_script.html has some HTML, JavaScript and Ajax content used for file uploading, which is embedded in the flash image and used as it is when generating the home page of the file server.
/index.html and /favicon.ico can be overridden by uploading files with same pathname to SPIFFS.
Open the project configuration menu (idf.py menuconfig) go to Example Configuration ->
In order to test the file server demo :
idf.py -p PORT flashidf.py -p PORT monitor and note down the IP assigned to your ESP module. The default port is 80http://192.168.43.130/ or http://192.168.43.130/index.html to see an HTML web page with list of files on the server (initially empty)myfile.html is uploaded to /path/on/device/myfile_copy.html using curl -X POST --data-binary @myfile.html 192.168.43.130:80/upload/path/on/device/myfile_copy.htmlcurl 192.168.43.130:80/path/on/device/myfile_copy.html > myfile_copy.htmlcmp myfile.html myfile_copy.htmlTo write to SD card, you need to:
Mount the SD card to the filesystem in the configuration menu (by calling idf.py menuconfig and select the EXAMPLE_MOUNT_SD_CARD option.The card will be formatted if mount has failed (EXAMPLE_FORMAT_SDCARD_IF_MOUNT_FAILED). Be careful, all the data in the card will disappear.Note: You will have to access the SD card by SPI bus with sdspi driver, if you are using ESP32S2.
Browsers often send large header fields when an HTML form is submit. Therefore, for the purpose of this example, HTTPD_MAX_REQ_HDR_LEN has been increased to 1024 in sdkconfig.defaults. User can adjust this value as per their requirement, keeping in mind the memory constraint of the hardware in use.
I (5583) example_connect: Got IPv6 event: Interface "example_connect: sta" address: fe80:0000:0000:0000:266f:28ff:fe80:2c74, type: ESP_IP6_ADDR_IS_LINK_LOCAL
I (5583) example_connect: Connected to example_connect: sta
I (5593) example_connect: - IPv4 address: 192.168.194.219
I (5593) example_connect: - IPv6 address: fe80:0000:0000:0000:266f:28ff:fe80:2c74, type: ESP_IP6_ADDR_IS_LINK_LOCAL
I (5603) example: Initializing SPIFFS
I (5723) example: Partition size: total: 896321, used: 0
I (5723) file_server: Starting HTTP Server on port: '80'
I (28933) file_server: Receiving file : /test.html...
I (28933) file_server: Remaining size : 574
I (28943) file_server: File reception complete
I (28993) file_server: Found file : test.html (574 bytes)
I (35943) file_server: Sending file : /test.html (574 bytes)...
I (35953) file_server: File sending complete
I (45363) file_server: Deleting file : /test.html