Browse Source

//下载视频

private_deployment
xhxu 1 year ago
parent
commit
f1a8c30dba
1 changed files with 24 additions and 24 deletions
  1. +24
    -24
      suimangCApi/src/main/java/com/iformall/controller/UserMouldVideoController.java

+ 24
- 24
suimangCApi/src/main/java/com/iformall/controller/UserMouldVideoController.java View File

@@ -246,29 +246,29 @@ public class UserMouldVideoController extends BaseController {
InputStream inputStream = new URL(mouldVideo.getVideoPlayUrl()).openStream();

//获取从那个字节开始读取文件
String rangeString = request.getHeader("Range");
if(StringUtils.isNotBlank(rangeString)){
tmpFile = FileUtils.createTmpFile(inputStream, mouldVideo.getId().toString(), "mp4");
RandomAccessFile targetFile = new RandomAccessFile(tmpFile, "r");
long fileLength = targetFile.length();
long range = Long.valueOf(rangeString.substring(rangeString.indexOf("=") + 1, rangeString.indexOf("-")));
//设置内容类型
response.setHeader("Content-Type", "video/mp4");
//设置此次相应返回的数据长度
response.setHeader("Content-Length", String.valueOf(fileLength - range));
//设置此次相应返回的数据范围
response.setHeader("Content-Range", "bytes "+range+"-"+(fileLength-1)+"/"+fileLength);
//返回码需要为206,而不是200
response.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT);
//设定文件读取开始位置(以字节为单位)
targetFile.seek(range);
byte[] cache = new byte[1024 * 300];
int flag;
while ((flag = targetFile.read(cache))!=-1){
outputStream.write(cache, 0, flag);
}
}else{
// String rangeString = request.getHeader("Range");
// if(StringUtils.isNotBlank(rangeString)){
// tmpFile = FileUtils.createTmpFile(inputStream, mouldVideo.getId().toString(), "mp4");
// RandomAccessFile targetFile = new RandomAccessFile(tmpFile, "r");
// long fileLength = targetFile.length();
// long range = Long.valueOf(rangeString.substring(rangeString.indexOf("=") + 1, rangeString.indexOf("-")));
// //设置内容类型
// response.setHeader("Content-Type", "video/mp4");
// //设置此次相应返回的数据长度
// response.setHeader("Content-Length", String.valueOf(fileLength - range));
// //设置此次相应返回的数据范围
// response.setHeader("Content-Range", "bytes "+range+"-"+(fileLength-1)+"/"+fileLength);
// //返回码需要为206,而不是200
// response.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT);
// //设定文件读取开始位置(以字节为单位)
// targetFile.seek(range);
//
// byte[] cache = new byte[1024 * 300];
// int flag;
// while ((flag = targetFile.read(cache))!=-1){
// outputStream.write(cache, 0, flag);
// }
// }else{
response.setHeader("Content-Disposition", "attachment; filename="
+ URLEncoder.encode(mouldVideo.getId()+".mp4", "UTF-8"));
//解决编码问题
@@ -280,7 +280,7 @@ public class UserMouldVideoController extends BaseController {
while ((flag = inputStream.read(cache))!=-1){
outputStream.write(cache, 0, flag);
}
}
// }

}catch(MallinkException e){
ResultData resultData = new ResultData(e.getErrorCode(), e.getMessage());


Loading…
Cancel
Save