1、JAVA实现单文件,多文件,视频上传后台接口代码
@ResponseBody
@RequestMapping(value="/images")
public ResponseData relgoodsimages(@RequestParam(value = "file", required = false) MultipartFile[] file, HttpServletRequest request, HttpSession session) throws IOException {
JSONObject res = new JSONObject();
JSONObject resUrl = new JSONObject();
List<String> imageurls=new ArrayList<>();
for (MultipartFile files:file){
String filename = UUID.randomUUID().toString().replaceAll("-", "");
String ext = FilenameUtils.getExtension(files.getOriginalFilename());
String filenames = filename + "." + ext;
String fileParentPath = ConstantsContext.getBpmnFileUploadPath();
String pathname = fileParentPath + filenames;
File newFile = new File(pathname);
files.transferTo(newFile);
imageurls.add(filenames);
}
resUrl.put("src", imageurls);
res.put("data", resUrl);
return ResponseData.success(0, "上传成功", res);
}
@ResponseBody
@RequestMapping("/video")
public ResponseData relgoodsvideo(@RequestParam(value = "file", required = false) MultipartFile file) throws IOException {
JSONObject res = new JSONObject();
JSONObject resUrl = new JSONObject();
String filename = UUID.randomUUID().toString().replaceAll("-", "");
String fileParentPath = ConstantsContext.getBpmnFileUploadPath();
String ext = FilenameUtils.getExtension(file.getOriginalFilename());
String filenames = filename + "." + ext;
String pathname = fileParentPath + filenames;
File newFile = new File(pathname);
file.transferTo(newFile);
resUrl.put("src", filenames);
res.put("msg", "");
res.put("code", 0);
res.put("data", resUrl);
return ResponseData.success(0, "上传成功", res);
}
2、前台js代码,前端框架所使用的是layUI
upload.render({
elem: '#pictureUrl'
,url: Feng.ctxPath + '/ledEnterpriseData/images'
,before: function(obj){
obj.preview(function(index, file, result){
$('#demo1').attr('src', result);
});
}
,done: function(res){
debugger;
let dataList = [];
dataList = res.data.data.src;
for (let i = 0; i<dataList.length; i++){
let tempUrl = dataList[i];
LedEnterpriseDataInfoDlg.data.pictureUrl += tempUrl+',';
}
layer.msg('上传成功');
console.log(res)
}
});
upload.render({
elem: '#certificateHonor'
,url: Feng.ctxPath +'/ledEnterpriseData/images'
,multiple: true
,before: function(obj){
obj.preview(function(index, file, result){
$('#demo2').append('<img src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img">')
});
}
,done: function(res){
let dataList2 = [];
dataList2 = res.data.data.src;
for (let i = 0; i<dataList2.length; i++){
let tempUrl = dataList2[i];
LedEnterpriseDataInfoDlg.data.certificateHonor += tempUrl+',';
}
}
});
upload.render({
elem: '#vedioUrl'
,url: Feng.ctxPath +'/ledEnterpriseData/video'
,accept: 'video'
, size: 1024 * 400
, exts: 'mp4'
, progress: function (n) {
var percent = n + '%';
layer.msg(percent, {
icon: 16
, shade: 0.01
});
} ,before: function(obj){
obj.preview(function(index, file, result){
$('#control_video_demo').attr('src', result);
$('#control_video_demo').css('display','block');
});
}