Envoyer une image vers un serveur HTTP PHP avec Java

Envoyer une image avec Java HTTP

import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

import javax.imageio.ImageIO;

public class UploadImage {

  public static void main(String[] args) {

    try {

      /* Charge l'image */
      Image image = ImageIO.read(new File("image.png"));

      /* Conversion de l'image en BufferedImage */
      BufferedImage bufferedImageToUpload = (BufferedImage) image;

      /* URL vers le serveur PHP */
      URL url = new URL("http://127.0.0.1:3000/save-image.php");
      HttpURLConnection connection = (HttpURLConnection) url.openConnection();

      /*
       * Options pour la connexion. l'image est envoyée avec
       * la méthode POST
       */
      connection.setDoOutput(true);
      connection.setRequestMethod("POST");

      /*
       * Envoi de l'objet BufferedImage directement vers le flux de sortie de la
       * connexion
       */
      ImageIO.write(bufferedImageToUpload, "PNG", connection.getOutputStream());

      /* Lecture de la réponse du serveur en UTF-8 */
      BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF8"));
      String ligne;
      while ((ligne = reader.readLine()) != null) {
        System.out.println(ligne);
      }
      reader.close();

    } catch (Exception e) {
      e.printStackTrace();
    }

  }

}

RĂ©ception de l'image avec PHP

<?php

/* Récupération de l'entrée */
$input = file_get_contents("php://input");

/* Création du nom du fichier */
$now = date("Y-m-d-H\hi\ms\s");
$formatted_file_name = "images/" . $now . ".png";

/* Enregistrement du fichier */
file_put_contents($formatted_file_name, $input);

echo "Image reçue";

Commentaires