How Do You Display Images in ESP32 and ESP8266 Web Server?


Angela Bailey

How Do You Display Images in ESP32 and ESP8266 Web Server?

The ability to display images on a web server is an essential feature for many IoT projects. In this tutorial, we will explore how to display images in the ESP32 and ESP8266 web servers using HTML.

Setting up the Web Server

Before we can display images, we need to set up a basic web server on our ESP32 or ESP8266 board. This will allow us to serve HTML pages with embedded images. Here’s a simple example of setting up a web server using the Arduino framework:


const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";

AsyncWebServer server(80);

void setup() {
  WiFi.begin(ssid, password);
  if (WiFi.waitForConnectResult() != WL_CONNECTED) {
  server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
    request->send(SPIFFS, "/index.html", "text/html");

void loop() {

Make sure to replace `YOUR_SSID` with your Wi-Fi network name and `YOUR_PASSWORD` with your Wi-Fi password. The above code sets up a web server that serves an `index.html` file when someone accesses the root URL (“/”).

Storing Images on SPIFFS

To display images on our web server, we need to store them on the SPIFFS (SPI Flash File System) memory of our ESP32 or ESP8266 board. Here’s how you can upload images to SPIFFS using the Arduino IDE:

  1. First, make sure you have the ESP32 or ESP8266 board selected in the Arduino IDE.
  2. Next, go to “Tools” > “ESP8266 Sketch Data Upload” or “ESP32 Sketch Data Upload”.
  3. This will create a new tab in your sketch called `data`. You can place your images in this folder.
  4. Now, upload your sketch to the board. The images will be uploaded to the SPIFFS memory along with your code.

Embedding Images in HTML

Once we have our web server set up and our images stored on SPIFFS, we can embed them in our HTML pages. To display an image, we use the `` tag with the `src` attribute pointing to the URL of the image file on our server. Here’s an example:

  <img src="/myimage.jpg">

In this example, we assume that we have a file named `myimage.jpg` stored on SPIFFS. The image will be displayed when someone accesses this HTML page on our web server.


  • Make sure that the image file path in the `src` attribute matches the location of your image on SPIFFS.
  • The path is relative to the root URL of your web server (“/”), so if you store your images inside a subfolder, include it in the path (e.g., `/images/myimage.jpg`).


In this tutorial, we learned how to display images in the ESP32 and ESP8266 web servers. By setting up a web server, storing images on SPIFFS, and embedding them in HTML using the `` tag, we can easily create IoT projects that serve dynamic image content.

Utilizing these techniques will allow you to showcase visual data or provide user interfaces for your connected devices.

Now that you have a good understanding of how to display images on an ESP32 or ESP8266 web server, you can start building your own IoT projects with visually engaging interfaces!

Discord Server - Web Server - Private Server - DNS Server - Object-Oriented Programming - Scripting - Data Types - Data Structures

Privacy Policy