//先将视频保存到项目生成临时文件,获取时长后删除临时文件
//使用fastdfs进行文件上传
@RequestMapping("/uploadVideoToFast")
@ResponseBodypublic Map uploadVideoToFast(@RequestParam("file") MultipartFile file)
throws IOException, InterruptedException {
File toFile= null;
InputStream ins= null;
ins=file.getInputStream();
toFile= newFile(file.getOriginalFilename());
inputStreamToFile(ins, toFile);
ins.close();
String length=ReadVideoTime(toFile);
Map url = UploadVideoDemo.testUploadStream(accessKeyId, accessKeySecret, "视频",
file.getOriginalFilename(), file.getInputStream());
url.put("length", length);returnurl;
}privateString ReadVideoTime(File source) throws InterruptedException {
Encoder encoder= newEncoder();
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());returnlength;
}public static voidinputStreamToFile(InputStream ins, File file) {try{
OutputStream os= newFileOutputStream(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();
}
}