文件上传优化
-
文件的名称需要优化
- 服务端 ,保存的文件名称如果固定,那么最终会导致服务器硬盘,只会保留一个文件,对上传的文件名称优化。
System.currentTimeMillis()+new Random().nextInt(1000000)+" .jpg"
- 服务端 ,保存的文件名称如果固定,那么最终会导致服务器硬盘,只会保留一个文件,对上传的文件名称优化。
-
服务端接收文件的优化
-
服务器端,接收一个文件后就关闭了,后面其他客户端就无法继续上传文件,使用循环进行改进,可以不断的接收不同的客户端传输过来的文件。
-
使用循环
while(true){ Socket socket = serverSocket.accept(); ... ... }
-
-
服务器端接受客户文件的效率优化
-
服务器端,在接收文件的时候,假如某个客户端传给你一个大文件,此时就不能再接收其它用户的文件,所以可以使用多线程技术优化接受效率
-
.
while(true){ Socket socket = serverSocket.accept(); //使用多线程,提高程序的效率 //来一个文件,开启一个线程 new Thread(new Runnable(){ @Override public void run(){ //使用网络字节输入流 Input File file = new File("D:\\upload"); if(!file.exits()){ file.mkdirs(); } //防止同名的文件被覆盖 String filename="前缀"+System.currentTimeMillis()+new Random().nextInt(1000000)+" .jpg" //构建一个本地的文件字节输出流对象 new FileOutputStream(file +"\\"+filename); ...... } }).start(); //服务端不关闭 }
-