生活随笔
收集整理的這篇文章主要介紹了
                                
JavaWeb播放视频实现断点续传、分片上传
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
 
                                
                            
                            
                            使用206狀態碼實現斷點續傳(俗稱拖進度條)
 設置maxSize實現分片上傳
 直接上代碼!
 
    @GetMapping("/t1.jspx")public void video(HttpServletRequest request, HttpServletResponse response) throws IOException {// 表示這是視頻文件response.setContentType("video/mp4");String range = request.getHeader("Range");// 第一次請求時range為nullif(range == null){response.setHeader("Accept-Ranges", "bytes");response.addHeader("Content-Disposition", "inline;filename=" + fileName);return;}// 如果有range,就請求數據(path和filenName為預先定義好的)File file = new File(path + "\\" + fileName);FileInputStream fileInputStream = new FileInputStream(file);ServletOutputStream out = response.getOutputStream();int contentLength = fileInputStream.available();// 獲取起止,end默認為0int start = 0, end = 0;if(range.startsWith("bytes=")){String[] values = range.split("=")[1].split("-");start = Integer.parseInt(values[0]);if(values.length > 1){end = Integer.parseInt(values[1]);}}//斷點續傳 206response.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT);// 每次傳遞實際長度long length = 0;// 允許的最大長度long maxSize = 1024L * 1024L;if(end > 0){// 一般不會這樣length = end - start + 1;response.setHeader("Content-length", "" + length);response.setHeader("Content-Range", "bytes " + start + "-" + end + "/" + contentLength);}else{// 大部分情況end為0length = ((contentLength - start) > maxSize) ? maxSize : (contentLength - start);response.setHeader("Content-length", "" + length);response.setHeader("Content-Range", "bytes "+ start + "-" + (start + length - 1) + "/" + contentLength);}// 將數據截取并存入byte[]數組中byte[] data = new byte[(int)length];fileInputStream.skip(start);fileInputStream.read(data);// 取出要傳給前端的有效數據out.write(data);out.close();fileInputStream.close();}
                            
總結
                            
                                以上是生活随笔為你收集整理的JavaWeb播放视频实现断点续传、分片上传的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                            
                                如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。