Передача файла изображения (* .jpeg, * .png и т. Д.) С клиента на сервер - PullRequest
0 голосов
/ 02 апреля 2012

В моем Java-приложении я хочу передать несколько изображений с клиента на сервер.Я использую Socket для связи клиента с сервером.Это работает, когда я передаю строку с клиента на сервер, но я не могу передать файл изображения.

Я использую

BufferedInputStream
BufferedOutputStream

для передачи строки.

Я знаюдля передачи файла мне нужно использовать FileInputStream как:

BufferedInputStream bis bis = new BufferedInputStream(new FileInputStream("111.JPG"));

Но я не знаю, что именно мне нужно написать.поэтому, пожалуйста, дайте ответ с помощью некоторого примера кода.

Ответы [ 2 ]

5 голосов
/ 02 апреля 2012

Вы должны преобразовать изображение в байт. Вы можете использовать эту функцию.

static byte[] ImageToByte(System.Drawing.Image iImage)
{
MemoryStream mMemoryStream = new MemoryStream();
iImage.Save(mMemoryStream,
System.Drawing.Imaging.ImageFormat.Gif);
return mMemoryStream.ToArray();
}

И вы можете вызвать эту функцию в своей серверной программе.

Bitmap tImage = new Bitmap(Image URL goes here);
byte[] bStream = ImageToByte(tImage);

while (true)
{
TcpClient client = server.AcceptTcpClient();
Console.WriteLine("Connected");
while (client.Connected)
{
NetworkStream nStream = client.GetStream();
nStream.Write(bStream, 0,
bStream.Length);
}
}
1 голос
/ 02 апреля 2012

В интернете уже много примеров:
здесь
здесь
и т.д.

Пожалуйста, рассмотрите возможность использования Google в следующий раз.

...