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

时间:2012-04-02 10:14:43

标签: java sockets file-upload file-io

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

我正在使用

的BufferedInputStream
的BufferedOutputStream

用于转移字符串。

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

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

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

2 个答案:

答案 0 :(得分:5)

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

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 :(得分:1)

互联网上有很多例子:
here
here

请考虑下次使用谷歌。