<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                >[warning]提醒:websocket支持上傳文件,但不建議這么做。因為websocket一次只能上傳小于等于 8192 字節的文件,如果大于這個數字則必須對文件切片,然后一段一段地上傳,這樣可能會出現文件不完整的情況,導致上傳的文件損壞,提示無法打開。特別是對于視頻/音頻文件常常會出現文件無法打開的情況。 實現步驟如下: **1. 前端代碼** ```js var socket = null /** * 上傳文件到服務端 */ function upload() { const file = document.getElementById("file").files[0] if (socket == null) { socket = new WebSocket('ws://localhost:8090/v1/upload?filename=' + file.name) } socket.onmessage = (e) => { console.info(e.data) } //每次傳遞數據大小為1024字節 let sliceSize = 1024 //計算出需要傳遞多少次 let slices = Math.ceil(file.size / sliceSize) let currentSlice = 0 for (let k = 0; k < slices; ++k) { let start = currentSlice * sliceSize; let end = Math.min((currentSlice + 1) * sliceSize, file.size) ++currentSlice //對文件切片 let blob = file.slice(start, end) const reader = new FileReader() reader.readAsArrayBuffer(blob) reader.onload = (event => { let buffer = event.target.result socket.send(buffer) }) } } ``` **2. 后端代碼** ```java @Component @ServerEndpoint(value = "/v1/upload") public class UploadController { @OnMessage public void upload(Session session, byte[] message) throws IOException { //獲取查詢參數 String query = session.getQueryString(); //FileWriter是 hutool-all 框架提供的一個API FileWriter writer = FileWriter.create(new File("e:/upload/websocket/" + query)); writer.append(message, 0, message.length); //將消息推送到前端 session.getBasicRemote().sendText(query + "上傳成功!"); } } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看