Как передать изображение в виде base64 на сервер из url в java?

Пользователь

от bart , в категории: Java , 2 года назад

Как передать изображение в виде base64 на сервер из url в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jedidiah.brown , 2 года назад

@bart 

Чтобы передать изображение в формате Base64 на сервер из URL в Java, вы можете использовать следующий код:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import java.io.*;
import java.net.*;
import java.util.*;

public class Base64ImageUploader {
    public static void main(String[] args) throws Exception {
        String imageUrl = "https://example.com/image.jpg";
        URL url = new URL("https://example.com/upload");
        String encoding = Base64.getEncoder().encodeToString(getImageBytes(imageUrl));
        
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("POST");
        connection.setDoOutput(true);
        connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
        
        String postData = "image=" + URLEncoder.encode(encoding, "UTF-8");
        OutputStream os = connection.getOutputStream();
        os.write(postData.getBytes("UTF-8"));
        os.flush();
        os.close();
        
        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        String inputLine;
        while ((inputLine = in.readLine()) != null) {
            System.out.println(inputLine);
        }
        in.close();
    }
    
    private static byte[] getImageBytes(String imageUrl) throws Exception {
        URL url = new URL(imageUrl);
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        InputStream is = url.openStream();
        byte[] byteChunk = new byte[4096];
        int n;
        while ((n = is.read(byteChunk)) > 0) {
            baos.write(byteChunk, 0, n);
        }
        is.close();
        return baos.toByteArray();
    }
}


В этом примере мы используем java.net.URL для получения изображения по URL-адресу и сохранения его в виде массива байтов. Затем мы кодируем массив байтов в строку Base64, используя java.util.Base64, и отправляем его на сервер в виде POST-запроса с помощью java.net.HttpURLConnection. После отправки запроса мы получаем ответ от сервера и выводим его на консоль.


Обратите внимание, что в этом примере мы используем application/x-www-form-urlencoded для типа контента POST-запроса. Вы можете изменить это на любой другой тип контента, поддерживаемый вашим сервером.

Пользователь

от stanford_mosciski , 9 месяцев назад

@bart 

Этот код позволяет передать изображение в формате Base64 на сервер из URL в Java. Пожалуйста, убедитесь, что у вас есть правильные разрешения и права доступа для загрузки изображения и выполнения HTTP-запросов на сервер. Вам также может потребоваться добавить обработку исключений для обработки любых ошибок, которые могут возникнуть в процессе выполнения кода.