国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - SocketIo+SpringMvc實現文件的上傳下載功能

SocketIo+SpringMvc實現文件的上傳下載功能

2021-05-24 13:33charlyFeng Java教程

這篇文章主要介紹了SocketIo+SpringMvc實現文件的上傳下載功能,socketIo不僅可以用來做聊天工具,也可以實現局域網。文中給出了實現代碼,需要的朋友可以參考下

socketio不僅可以用來做聊天工具,也可以實現局域網(當然你如果有外網也可用外網)內實現文件的上傳下載,下面是代碼的效果演示:

SocketIo+SpringMvc實現文件的上傳下載功能

git地址: https://github.com/fengcharly/sockeio-springmvcupload.git

部分代碼如下:

服務端的代碼:

chuanserver:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import java.io.*;
import java.net.serversocket;
import java.net.socket;
import java.nio.channels.filechannel;
public class chuanserver {
 public static void protserver(string po) throws ioexception {
    int port = integer.parseint(po);
  serversocket serversocket = new serversocket(port);
  while (true) {
   final socket clientsocket = serversocket.accept();
   new thread() {
    @override
    public void run() {
     try {
      bufferedreader br = new bufferedreader(
        new inputstreamreader(clientsocket.getinputstream(), "gbk")
      );
      inputstream is = clientsocket.getinputstream();
      printstream pr = new printstream(
        clientsocket.getoutputstream()
      );
      pr.println("我是服務端");
      string str = br.readline();
      system.out.println("br.readline():" + str);
      system.out.println("服務端來接收了!!");
      out(is, str);
     } catch (exception e) {
      e.printstacktrace();
     }
    }
   }.start();
  }
 }
 public static void out(inputstream is, string str) throws ioexception {
  fileoutputstream fo = new fileoutputstream("c:\\users\\administrator\\desktop\\upload\\" + str);
  bufferedinputstream bi = new bufferedinputstream(is);
  bufferedoutputstream bo = new bufferedoutputstream(fo);
  int len = 0;
  while ((len=bi.read())!=-1){
   bo.write(len);
  }
  bi.close();
  bo.close();
 }
}

這里我固定了上傳后保存的路徑為:"c:\users\administrator\desktop\upload\"

portcontroller:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import org.springframework.stereotype.controller;
import org.springframework.ui.model;
import org.springframework.web.bind.annotation.requestmapping;
import socket.chuanserver;
import java.io.ioexception;
@controller
public class portcontroller {
 @requestmapping("/port")
 public string port(string port,model model){
  model.addattribute("port",port);
  try {
   chuanserver.protserver(port);
  } catch (ioexception e) {
   e.printstacktrace();
  }
  return "success";
 }
}

再來看下上傳的客戶端的代碼:

uploadcontroller:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@controller
@requestmapping("/")
public class uploadcontroller {
 @autowired
 private upservice upservice;
 private string zhuan="";
 @requestmapping("/upload")
 public string upload(@requestparam(value = "file", required = false) multipartfile file,
       httpservletrequest request, @requestparam("iphost") string iphost,@requestparam("port") string port,model model) throws ioexception {
  string filename = file.getoriginalfilename();
  inputstream is = file.getinputstream();
  upservice.upload(filename,is,iphost,port);
  return "success";
 }
}

upserviceimpl:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
@service
public class upserviceimpl implements upservice {
 @override
 public void upload(string filename, inputstream is, string iphost, string port) {
  getclientsocket(is, filename, iphost, port);
 }
//建立socket通信
 public void getclientsocket(inputstream is, string filename, string iphost, string port) {
  int po = integer.parseint(port);
  try {
   socket socket = new socket(iphost, po);
   bufferedreader br = new bufferedreader(
     new inputstreamreader(socket.getinputstream(), "utf-8")
   );
   printstream pr = new printstream(
     socket.getoutputstream()
   );
   outputstream os = socket.getoutputstream();
   system.out.println("客戶端給你傳文件了!");
   system.out.println("文件名為:" + filename);
   //讀取服務器返回的消息
   string str = br.readline();
   system.out.println("服務器發來的消息為:" + str);
   pr.println(filename);
   in(is, os);
   pr.close();
   br.close();
   system.out.println("客戶端已關閉");
  } catch (exception e) {
   e.printstacktrace();
  }
 }
 //上傳文本
 public static void in(inputstream is, outputstream os) throws ioexception {
  //bio
  bufferedinputstream bi = new bufferedinputstream(is);
  bufferedoutputstream bo = new bufferedoutputstream(os);
  int len = 0;
  while ((len=bi.read())!=-1){
   bo.write(len);
   system.out.println(len);
  }
  bi.close();
  bo.close();
 }
}

這里相應的訪問路徑為:

服務端: http://localhost:8080/

客戶端: http://localhost:8082/upload

完整項目git地址:

注意: https://github.com/fengcharly/sockeio-springmvcupload.git

傳輸過程中的我們用的是系統提供的bufferedinputstream和bufferedoutputstream緩沖流來傳輸文件,相對而言傳輸小文件比較合適,大文件比較慢,可以進一步優化,傳輸過程中傳輸速度如下:

SocketIo+SpringMvc實現文件的上傳下載功能

總結

以上所述是小編給大家介紹的socketio+springmvc實現文件的上傳下載功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:https://www.cnblogs.com/charlypage/p/9440226.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日韩色在线| 美女在线视频一区二区 | 在线观看国产 | 国内自拍第一页 | 日韩免费av | 亚洲精品久久久一区二区三区 | 曰韩一级鸥美一级 | 寡妇激情毛片免费视频 | 日韩码有限公司在线观看 | 成人激情视频在线观看 | 欧美精产国品一二三区 | 日韩欧美中文字幕在线视频 | 日精品| 亚洲欧洲精品成人久久奇米网 | 互换娇妻呻吟hd中文字幕 | 亚洲aaa| 中文字幕国产视频 | 在线黄色网 | 国产在线观看 | 久久男人的天堂 | 日韩精品| 欧美午夜一区二区三区免费大片 | www国产亚洲精品久久网站 | 日韩欧美精品 | 亚洲成人av免费观看 | 欧美一区2区三区4区公司二百 | 含羞草www网址进入在线观看 | 久热精品免费视频 | 久久日韩| 亚洲视频区 | 日韩av在线电影 | 伊人久久综合 | 色啪网站| 久久精品一区二区 | 午夜剧场在线免费观看 | 精品久久av | 成人男女啪啪免费观软件 | 免费看a| 性欧美精品高清 | 成人在线观看日韩 | 在线观看中文字幕亚洲 |