从客户端到服务器传输图像(*.jpeg,*.png等)文件

Vin*_*ash 0 java sockets file-io file-upload

在我的java应用程序中,我想将一些图像从客户端传输到服务器.我使用Socket连接客户端和服务器.当我将字符串从客户端传输到服务器但我无法传输图像文件时,它正在工作.

我在用

BufferedInputStream
BufferedOutputStream

用于传输字符串.

我知道要传输文件我需要使用FileInputStream:

BufferedInputStream bis bis = new BufferedInputStream(new FileInputStream("111.JPG"));
Run Code Online (Sandbox Code Playgroud)

但我不知道,究竟需要写什么.所以请通过一些代码示例给出答案.

vik*_*iii 5

您应该将图像转换为字节.您可以使用此功能.

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

您可以在服务器程序中调用此函数.

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);
}
}
Run Code Online (Sandbox Code Playgroud)