Commit add6d0eb22f2d53a124185ae36a686b230936230

Authored by 648540858
1 parent 2ad1001e

去掉多余注释

src/main/java/top/panll/assist/controller/DownloadController.java deleted 100644 → 0
1   -//package top.panll.assist.controller;
2   -//
3   -//
4   -//import io.swagger.v3.oas.annotations.Operation;
5   -//import io.swagger.v3.oas.annotations.Parameter;
6   -//import io.swagger.v3.oas.annotations.tags.Tag;
7   -//import org.apache.catalina.connector.ClientAbortException;
8   -//import org.slf4j.Logger;
9   -//import org.slf4j.LoggerFactory;
10   -//import org.springframework.beans.factory.annotation.Autowired;
11   -//import org.springframework.stereotype.Controller;
12   -//import org.springframework.web.bind.annotation.*;
13   -//import top.panll.assist.dto.UserSettings;
14   -//import top.panll.assist.utils.PageInfo;
15   -//
16   -//import javax.servlet.http.HttpServletRequest;
17   -//import javax.servlet.http.HttpServletResponse;
18   -//import java.io.BufferedOutputStream;
19   -//import java.io.File;
20   -//import java.io.IOException;
21   -//import java.io.RandomAccessFile;
22   -//import java.nio.charset.StandardCharsets;
23   -//import java.util.List;
24   -//import java.util.Map;
25   -//
26   -//@Controller
27   -//@RequestMapping("/download")
28   -//public class DownloadController {
29   -//
30   -// private final static Logger logger = LoggerFactory.getLogger(DownloadController.class);
31   -//
32   -// @Autowired
33   -// private UserSettings userSettings;
34   -//
35   -// /**
36   -// * 获取app+stream列表
37   -// *
38   -// * @return
39   -// */
40   -// @GetMapping(value = "/**")
41   -// @ResponseBody
42   -// public void download(HttpServletRequest request, HttpServletResponse response) {
43   -//
44   -// String resourcePath = request.getServletPath();
45   -// System.out.println(resourcePath);
46   -// resourcePath = resourcePath.substring("/download".length() + 1, resourcePath.length());
47   -// String record = userSettings.getRecord();
48   -//// if (record.endsWith("/")) {
49   -//// record = record.substring(0, record.length() - 1);
50   -//// System.out.println(record);
51   -//// }
52   -// System.out.println(record + resourcePath);
53   -// File file = new File(record + resourcePath);
54   -// if (!file.exists()) {
55   -// response.setStatus(HttpServletResponse.SC_NOT_FOUND);
56   -// return;
57   -// }
58   -//
59   -// /**
60   -// * 参考实现来自: CSDN 进修的CODER SpringBoot Java实现Http方式分片下载断点续传+实现H5大视频渐进式播放
61   -// * https://blog.csdn.net/lovequanquqn/article/details/104562945
62   -// */
63   -// String range = request.getHeader("Range");
64   -// logger.info("current request rang:" + range);
65   -// //开始下载位置
66   -// long startByte = 0;
67   -// //结束下载位置
68   -// long endByte = file.length() - 1;
69   -// logger.info("文件开始位置:{},文件结束位置:{},文件总长度:{}", startByte, endByte, file.length());
70   -//
71   -// //有range的话
72   -// if (range != null && range.contains("bytes=") && range.contains("-")) {
73   -// range = range.substring(range.lastIndexOf("=") + 1).trim();
74   -// String[] ranges = range.split("-");
75   -// try {
76   -// //判断range的类型
77   -// if (ranges.length == 1) {
78   -// // 类型一:bytes=-2343,
79   -// if (range.startsWith("-")) {
80   -// endByte = Long.parseLong(ranges[0]);
81   -// }
82   -// //类型二:bytes=2343-
83   -// else if (range.endsWith("-")) {
84   -// startByte = Long.parseLong(ranges[0]);
85   -// }
86   -// }
87   -// //类型三:bytes=22-2343
88   -// else if (ranges.length == 2) {
89   -// startByte = Long.parseLong(ranges[0]);
90   -// endByte = Long.parseLong(ranges[1]);
91   -// }
92   -//
93   -// } catch (NumberFormatException e) {
94   -// startByte = 0;
95   -// endByte = file.length() - 1;
96   -// logger.error("Range Occur Error,Message:{}", e.getLocalizedMessage());
97   -// }
98   -//
99   -//
100   -// }
101   -//
102   -// // 要下载的长度
103   -// long contentLength = endByte - startByte + 1;
104   -// // 文件名
105   -// String fileName = file.getName();
106   -// // 文件类型
107   -// String contentType = request.getServletContext().getMimeType(fileName);
108   -//
109   -// // 解决下载文件时文件名乱码问题
110   -// byte[] fileNameBytes = fileName.getBytes(StandardCharsets.UTF_8);
111   -// fileName = new String(fileNameBytes, 0, fileNameBytes.length, StandardCharsets.ISO_8859_1);
112   -//
113   -// response.setHeader("Content-Type", contentType);
114   -// response.setHeader("Content-Length", String.valueOf(contentLength));
115   -// //inline表示浏览器直接使用,attachment表示下载,fileName表示下载的文件名
116   -// response.setHeader("Content-Disposition", "inline;filename=" + fileName);
117   -// response.setContentType(contentType);
118   -// if (range != null) {
119   -// //各种响应头设置
120   -// //支持断点续传,获取部分字节内容:
121   -// response.setHeader("Accept-Ranges", "bytes");
122   -// //http状态码要为206:表示获取部分内容
123   -// response.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT);
124   -// // Content-Range,格式为:[要下载的开始位置]-[结束位置]/[文件总大小]
125   -// response.setHeader("Content-Range", "bytes " + startByte + "-" + endByte + "/" + file.length());
126   -// } else {
127   -// response.setStatus(HttpServletResponse.SC_OK);
128   -// }
129   -//
130   -//
131   -// BufferedOutputStream outputStream = null;
132   -// RandomAccessFile randomAccessFile = null;
133   -// //已传送数据大小
134   -// long transmitted = 0;
135   -// try {
136   -// randomAccessFile = new RandomAccessFile(file, "r");
137   -//
138   -// outputStream = new BufferedOutputStream(response.getOutputStream());
139   -// byte[] buff = new byte[4096];
140   -// int len = 0;
141   -// randomAccessFile.seek(startByte);
142   -// //warning:判断是否到了最后不足4096(buff的length)个byte这个逻辑((transmitted + len) <= contentLength)要放前面
143   -// //不然会会先读取randomAccessFile,造成后面读取位置出错;
144   -// while ((transmitted + len) <= contentLength && (len = randomAccessFile.read(buff)) != -1) {
145   -// outputStream.write(buff, 0, len);
146   -// transmitted += len;
147   -// }
148   -// //处理不足buff.length部分
149   -// if (transmitted < contentLength) {
150   -// len = randomAccessFile.read(buff, 0, (int) (contentLength - transmitted));
151   -// outputStream.write(buff, 0, len);
152   -// transmitted += len;
153   -// }
154   -//
155   -// outputStream.flush();
156   -// response.flushBuffer();
157   -// randomAccessFile.close();
158   -// logger.info("下载完毕:" + startByte + "-" + endByte + ":" + transmitted);
159   -// } catch (ClientAbortException e) {
160   -// logger.warn("用户停止下载:" + startByte + "-" + endByte + ":" + transmitted);
161   -// //捕获此异常表示拥护停止下载
162   -// } catch (IOException e) {
163   -// e.printStackTrace();
164   -// logger.error("用户下载IO异常,Message:{}", e.getLocalizedMessage());
165   -// } finally {
166   -// try {
167   -// if (randomAccessFile != null) {
168   -// randomAccessFile.close();
169   -// }
170   -// } catch (IOException e) {
171   -// e.printStackTrace();
172   -// }
173   -// }///end try
174   -// }
175   -//}