import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import cn.hutool.core.lang.UUID;
public class FileUploadServer {
/**
*
* @author blue
* @throws Exception
* @date 2020年8月11日
*
*/
public static void main(String[] args) throws Exception {
ServerSocket server = new ServerSocket(9966);
System.out.println("服务器已启动...");
// 启用一个线程 接收客户端
Thread thread = new Thread(() -> {
// run方法中:
while (true) {
try {
// 接收到客户端
Socket socket = server.accept();
// 获取输入流
BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());
// 保证图片名唯一UUID
BufferedOutputStream bos = new BufferedOutputStream(
//UUID.randomUUID().toString() + ".jpg"默认输出到工程文件路径下
//UUID.randomUUID().toString()生成随机字符串 改这里可以更改上传后文件的名字
//将文件上传到E盘路径下
new FileOutputStream("E:\\"+UUID.randomUUID().toString() + ".jpg"));
byte[] b = new byte[3 * 1024];
int len = -1;
while ((len = bis.read(b)) != -1) {
bos.write(b, 0, len);
}
// 关闭资源
bos.close();
bis.close();
socket.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
});
// 启动线程
thread.start();
}
}
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
public class FileUploadClient {
/**
* @author blue
* @throws IOException
* @throws UnknownHostException
* @date 2020年8月11日
*/
public static void main(String[] args) throws UnknownHostException, IOException {
System.out.println("请输入要上传的图片路径");
Scanner sc=new Scanner(System.in);
String pathname=sc.nextLine();
//2启动客户端
Socket client =new Socket("localhost",9966);
//3.上传文件
BufferedInputStream bis=new BufferedInputStream(new FileInputStream(pathname));
BufferedOutputStream bos=new BufferedOutputStream(client.getOutputStream());
byte[] b=new byte[3*1024];
int len=-1;
while((len=bis.read(b))!=-1) {
bos.write(b,0,len);
}
System.out.println("文件上传完毕");
//关闭资源
bos.close();
bis.close();
client.close();
sc.close();
System.out.println("文件上传成功");
}
}