一:引入相关包(maven)。
<dependency>
<groupId>ws.schild</groupId>
<artifactId>jave-core</artifactId>
<version>2.4.2</version>
</dependency>
<dependency>
<groupId>ws.schild</groupId>
<artifactId>jave-native-linux64</artifactId>
<version>2.4.2</version>
</dependency>
<dependency>
<groupId>ws.schild</groupId>
<artifactId>jave-native-win64</artifactId>
<version>2.4.2</version>
</dependency>
<dependency>
<groupId>ws.schild</groupId>
<artifactId>jave-native-osx64</artifactId>
<version>2.4.2</version>
</dependency>
二:转换方法(例:音频转Mp3)
public static void changeSourceToMp3(File source, String targetPath) throws Exception {
MultimediaObject multimediaObject = new MultimediaObject(source);
File target = new File(targetPath);
AudioAttributes audio = new AudioAttributes();
Encoder encoder = new Encoder();
audio.setCodec("libmp3lame");
EncodingAttributes attrs = new EncodingAttributes();
attrs.setFormat("mp3");
attrs.setAudioAttributes(audio);
encoder.encode(multimediaObject, target, attrs);
}
三:使用示例:
public JsonResult uploadFile(HttpServletRequest request) {
JsonResult responseInfo = new JsonResult();
List<Map<String,String>> listMap = new ArrayList<>();
try {
String contentType = request.getContentType();
if(null != contentType && contentType.toLowerCase().startsWith("multipart/")){
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest)request;
//获取上传上来的文件
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
if(null != fileMap && fileMap.size()>0){
for (Map.Entry<String, MultipartFile> entry : fileMap.entrySet()) {
MultipartFile file = entry.getValue();
String fileName = file.getOriginalFilename();
String suffix = fileName.substring(fileName.lastIndexOf("."),fileName.length());
String key = entry.getKey();
//uploadPath 文件上传配置的访问地址
String folderStr = uploadPath+"/file/" + UtilDates.getYear()+"/"+UtilDates.getMonthDay() +"/"+fileName;
String picpathTemp = "/file/" + UtilDates.getYear()+"/"+UtilDates.getMonthDay() +"/";
String path = folderStr+fileName;
File folder = new File(folderStr);
if (!folder.exists() && !folder.isDirectory()) {
folder.mkdirs();//创建文件夹
}
file.transferTo(new File(path));
if(suffix.equals(".acc")||suffix.equals(".aac")||suffix.equals(".amr")){
String pathTemp = path.substring(0,path.lastIndexOf("."))+".mp3";
File newFile = new File(path);
AudioToMp3.changeSourceToMp3(newFile,pathTemp);
//删除源(原)文件
newFile.delete();
picpathTemp = picpathTemp.substring(0,picpathTemp.lastIndexOf("."))+".mp3";
}
Map<String,String> map = new HashMap<>();
map.put(key,picpathTemp);
listMap.add(map);
}
}
}else{
return responseInfo.setSuccess(false,"上传文件为空,请上传文件!");
}
} catch (Exception e) {
return responseInfo.setSuccess(false,"文件保存失败!");
}
responseInfo.setData(listMap);
return responseInfo.setSuccess(true,"文件上传成功");
}