//先将视频保存到项目生成临时文件,获取时长后删除临时文件
// 使用fastdfs进行文件上传
@RequestMapping("/uploadVideoToFast")
@ResponseBody
public Map<String, Object> uploadVideoToFast(@RequestParam("file") MultipartFile file)
throws IOException, InterruptedException {
File toFile = null;
InputStream ins = null;
ins = file.getInputStream();
toFile = new File(file.getOriginalFilename());
inputStreamToFile(ins, toFile);
ins.close();
String length = ReadVideoTime(toFile);
Map<String, Object> url = UploadVideoDemo.testUploadStream(accessKeyId, accessKeySecret, "视频",
file.getOriginalFilename(), file.getInputStream());
url.put("length", length);
return url;
}
private String ReadVideoTime(File source) throws InterruptedException {
Encoder encoder = new Encoder();
String length = "";
try {
MultimediaInfo m = encoder.getInfo(source);
long ls = m.getDuration() / 1000;
int hour = (int) (ls / 3600);
int minute = (int) (ls % 3600) / 60;
int second = (int) (ls - hour * 3600 - minute * 60);
length = hour + ":" + minute + ":" + second;
} catch (Exception e) {
e.printStackTrace();
}
Thread.sleep(1000);
System.out.println(source.getAbsolutePath());
System.out.println(source.getPath());
System.out.println(length);
System.out.println(source.delete());
return length;
}
public static void inputStreamToFile(InputStream ins, File file) {
try {
OutputStream os = new FileOutputStream(file);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead);
}
os.close();
ins.close();
} catch (Exception e) {
e.printStackTrace();
}
}