JavaはTCP Socketに基づいてファイルアップロードを実現します。


ファイルアップロードプロセスは一方向のソケット通信プロセスである。クライアントはファイル入力ストリームを通してファイルを読み取り、出力ストリーム書き込みデータをソケットから取得する。サービスがソケットから入力ストリームを取得し、ファイル出力ストリームを書き込み、データの書き込みが完了するとアップロードが完了します。
サービスエンドUploadServer:

public class UplaodServer {
  public static void main(String []args){
    try(
      //     ServerSocket  8080     
      // ServerSocket     AutoCloseable  ,         
    	ServerSocket server = new ServerSocket(8080);
      // accept()       ,         
      Socket socket = server.accept();
      //      
      BufferedInputStream in = new BufferedInputStream(socket.getInputStream());
      //              ,     upload.jpg   
      FileOutputStream outputStream = new FileOutputStream("./upload.jpg")
    ){
      //     
      byte [] buffer = new byte[1024];
      int len = in.read(buffer);
      while(len != -1){
        //        
        outputStream.write(buffer, 0, len);
        //    Socket     
        len = in.read(buffer);
      }
      System.out.println("     ");
    }catch (IOException e) {
      e.printStackTrace();
    }
  }
}
クライアントUploadClient:

public class UploadClient {
  public static void main(String []args){
    try(
    	// Socket     AutoCloseable          
      Socket socket = new Socket("127.0.0.1", 8080);
       //  Socket     ,         
      BufferedOutputStream out = new BufferedOutputStream(socket.getOutputStream());
      FileInputStream fileInput = new FileInputStream("F:\file\oxx6j5.jpg");
      //              
      BufferedInputStream in = new BufferedInputStream(fileInputStream);
    ){
       //      
      byte[] buffer = new byte[1024];
      int len = in.read(buffer);
      while (len != -1) {
        //   Socket
        out.write(buffer, 0, len);
        //       
        len = in.read(buffer);
      }
      System.out.println("    !");
    }catch (ConnectException e) {
      System.out.println("      ");
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}
注意
server.accept()はスレッドをブロックしますので、server.accept()の文をサブスレッドに入れたほうがいいです。
以上はJavaがTCP Socketに基づいてファイルアップロードの詳細を実現しました。Javaファイルアップロードに関する資料は他の関連記事に注目してください。