ESP8266 send .PNG file in a POST request

What I'm trying: trying to send images (using POST requests) to a server that will look for certain items in the image and returns a JSON object with info I need.

What I have working: I have everything working with a POST request to the API from the server using Base64 string images manually converted, the JSON body is getting nicely parsed and I get all the data I need using the following code.

httpsClient.print(String("POST ") + url + " HTTP/1.1\r\n" +
                    "Host: " + host + "\r\n" +
                    "Content-Type: application/json" + "\r\n" +
                    "Content-Length: " + imageBase64.length() + "\r\n\r\n" +
                    imageBase64 + "\r\n" +
                    "Connection: close\r\n\r\n");*/

What I want: send an image FILE in the POST request directly from the ESP8266 SPIFF system, as said before now I manually convert them to a base64 string which is not what I want. I've googled a a lot but I can't find any example on this, and I really have no idea where to start or what to do. Here is what I have now after lots of trying:

File imageFile;
imageFile = SPIFFS.open("/image.png", "r");
httpsClient.print(String("POST ") + url + " HTTP/1.1\r\n" +
                    "Host: " + host + "\r\n" +
                    //"Content-Type: multipart/form-data" + "\r\n" +
                    "Content-Type: image/png" + "\r\n" +
                    "Content-Disposition: form-data; name=\"image\"; filename=\"image.png\"" + "\r\n" +
                    //"Content-Transfer-Encoding: binary" + "\r\n" + 
                    "Content-Length: " + imageFile.size() + "\r\n\r\n");
                    imageFile + "\r\n" +
                    "Connection: close\r\n\r\n");

The commented code are parts which I've tried with and without and no clue if they are really needed. I have a strong feeling that I need to read byte by byte from the image and stream it or somehow, but I have really no clue how to or where to start.
With the current code my output is:

{"error_code": 400, "error": "Missing file named \"image\" in request POST"}

I got the output from listening to the client and directly printing in the serial monitor, which should return the JSON body with all the info I want.

As an example this is how you would do it in the CMD prompt (this one is for the base64 images, which I got working):

curl -X POST "https://api.openalpr.com/v2/recognize_bytes?secret_key=YOUR_TOKEN&recognize_vehicle=0&country=eu&return_image=0&topn=1" -H "accept: application/json" -H "Content-Type: application/json" -d "YOUR_IMAGE_BYTES”

Which uses the Base64, I got this one working

Now the other one is for the file images, which I haven't got working (these post requests are just to give you an idea of how this API is working!):

curl -X POST "https://api.openalpr.com/v2/recognize?secret_key=YOUR_TOKEN&recognize_vehicle=0&country=eu&return_image=0&topn=1" -H "accept: application/json" -H "Content-Type: multipart/form-data" -F image=@C:\Users\Name\Desktop\image.png;type=image/png

I hope anyone can help me.

Alright I've been trying a lot of things and I think I'm a bit further but I still have no idea what the issues is.
I think I might send the image file correctly now, but in my POST request I still miss some things. Here's the code:

File imageFile = SPIFFS.open("/image.png", "r");

  httpsClient.print(String("POST ") + url + " HTTP/1.1\r\n" +
                    "Host: " + host + "\r\n" +
                    "Content-Type: image/png" + "\r\n" +
                    "Content-Disposition: form-data; name=\"image\"; filename=\"image.png\"" + "\r\n" +
                    "Content-Length: " + imageFile.size() + "\r\n\r\n");

  if (imageFile) {
  Serial.println("Sending file..");
    byte clientBuf[64];
    int clientCount = 0;

    while (imageFile.available()) {
      clientBuf[clientCount] = imageFile.read();
      clientCount++;
      if (clientCount > 63)
      {
        // Serial.println("Packet");
        httpsClient.write(clientBuf, 64);
        clientCount = 0;
      }
    }
    if (clientCount > 0) httpsClient.write(clientBuf, clientCount);
    imageFile.close();
  }

  httpsClient.print("\r\n");
  httpsClient.print("Connection: close\r\n\r\n");
  imageFile.close();

This is the output:

{"error_code": 400, "error": "Missing file named \"image\" in request POST"}

So I guess I have to define somewhere in the POST request that I want to send an image file or something?

I've been looking more and more into post requests and tried content-types like octet-stream (since I thought I was sending byte by byte from the file) but still with no luck. I have a feeling that the server doesn't recognize the bytes I'm sending as a file/image, or I'm just completely streaming my file the wrong way. And on top of that I think my POST request is still in a wrong format.