核心
PS: 游客不配拥有姓名,只配缺省值😂
代码概要
@GetMapping("getFile")
public void getFile(HttpServletRequest request, HttpServletResponse response) throws Exception {
final ServletOutputStream outputStream = response.getOutputStream();
final File file = new File("C:\Users\xd\Downloads\android-studio-ide-201.6953283-windows.exe");
final FileInputStream inputStream = new FileInputStream(file);
final long fileLen = file.length();
int off = 0, len = 1024, notRead = 1, available;
final byte[] bytes = new byte[len];
final String userLevel = request.getHeader("userLevel");
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + file.getName());
while (notRead >= 1) {
notRead = inputStream.read(bytes, off, len);
outputStream.write(bytes);
available = inputStream.available();
System.out.println("进度:" + (available * 100L / fileLen) + "%\t剩余:" + available);
switch (userLevel) {
case "钻石会员":
break;
case "黄金会员":
Thread.sleep(20);
break;
case "会员":
Thread.sleep(50);
break;
default:
Thread.sleep(200);
}
}
outputStream.flush();
outputStream.close();
}