实现过程
客户端:HTML页面需要一个表单,且必须设置表单的enctype属性值为"multipart/form-data",以及method属性值为"post"(因为get方式不支持大量数据提交);表单里有一个的标签,且name属性值必须指定。
```java
//实现图片上传的客户端
Socket socket = new Socket(InetAddress.getByName("10.0.185.144"),44444);
//读取本地图片的字节读取流
FileInputStream fis = new FileInputStream("new.jpg");
//给服务器端发送数据的字节输出流
OutputStream out = socket.getOutputStream();
//读取"上传成功"的字节读取流
InputStream in = socket.getInputStream();
//循环读取本地图片,发送给服务器端
byte[] arr = new byte[1024];
int len = 0;
while((len = fis.read(arr))!=-1)
{
out.write(arr,0,len);
}
//向服务器写入结束标记
socket.shutdownOutput();
//读取"上传成功"
int num = in.read(arr);
System.out.println(new String(arr,0,num));
fis.close();
socket.close();
服务器实现
创建 ServerSocket 套接字对象,监听端口
accept() 方法获取客户端的连接对象
客户端连接对象获取字节输入流,读取客户端发送的图片
创建 File 对象,绑定上传文件夹
创建字节输出流
字节流得到图片,将图片写进写到文件夹中
发送消息给客户端
关闭流资源