Вот пример. Сначала вы хотите сначала установить соединение с веб-сервером, а затем преобразовать изображение в шестую строку непосредственно в выходной поток, чтобы байты переходили непосредственно на сервер, и вам не нужно сначала преобразовывать все изображение в гигантскую строку, а затем нажмите на сервер.
byte[] array; // This is your byte array containing the image
URL url = new URL("http://yourwebserver.com/image-upload-or-whatever");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
try {
urlConnection.setDoOutput(true);
urlConnection.setChunkedStreamingMode(0);
OutputStream out = new BufferedOutputStream(urlConnection.getOutputStream());
// Now you have an output stream that is connected to the webserver that you can
// write the content into
for (byte b : array) {
// Get the ASCII character for the first and second digits of the byte
int firstDigit = ((b >> 4) & 0xF) + '0';
int nextDigit = (b & 0xF) + '0';
out.write(firstDigit);
out.write(nextDigit);
}
out.flush(); // ensure all data in the stream is sent
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
readStream(in); // Read any response
} finally {
urlConnection.disconnect();
}
Я не пробовал этот код, но, надеюсь, вы поняли.
Насколько велик ваш массив байтов? ;) (обратите внимание: зачем вам b & 0xff? байт не может быть больше 0xff) –
Привет, спасибо за ваш комментарий, это мой размер изображения 15980544, bytearray size = 1489960 – GoCrazy
@Adriano - это делается для того, чтобы получить подписанный материал справа – ligi