java:
util类
public static String Upload(String uploadpath,String filename,//path 上传路径 filename 文件名称
@RequestParam(value = "file") MultipartFile multipartFile) throws IllegalStateException, IOException{
//获取文件后缀名
//String prefix=filename.substring(filename.lastIndexOf(".")+1);
////修改后的文件名
// String fileUUIDname = UUID.randomUUID().toString();
//修改后的文件名(带后缀)
// String NewFileName = filename + "." + prefix;
//修改后的完整路径
//uploadpath = uploadpath + "\\" + NewFileName;
/**
* 此处只负责上传文件没有条件判断(比如文件类型判断)
* 参数为 1.上传文件名称 2.上传路径 3.MultipartFile对象
*/
File targetFile = new File(uploadpath, filename);
//判断文件夹是否已经存在,如果已经存在了重新建
if (!targetFile.exists()) {
targetFile.mkdirs();
}
//转存文件
multipartFile.transferTo(targetFile);
return "succ";
controller
public String upload(Model model, HttpServletRequest request, //此时传的是参数,不是对象
@RequestParam(value = "file") MultipartFile multipartFile) //使用SpringMVC注解RequestParam来指定表单中的file参数;
throws IOException {
String ret = "1";
// 获取上传的文件保存的路径
String path = request.getSession().getServletContext().getRealPath("upload");
// 获取上传的文件的名称
String filename = multipartFile.getOriginalFilename();
//修改文件名称 uuid
String fileUUIDname = UUID.randomUUID().toString();
//获取后缀
String prefix=filename.substring(filename.lastIndexOf(".")+1);
//修改后完整的文件名称
String NewFileName = fileUUIDname + "." + prefix;
//完整的路径
String completepath = path +"\\"+ NewFileName;
//判空
if(filename != null && filename != ""){
//判断文件类型
if(filename.endsWith(".xls") || filename.endsWith(".xlsx")){
//创建文件夹upload
/*File targetFile = new File(path, filename);
//判断文件夹是否已经存在,如果已经存在了重新建
if (!targetFile.exists()) {
targetFile.mkdirs();
}
//转存文件
multipartFile.transferTo(targetFile);*/
FileUtil.Upload(path, NewFileName, multipartFile);
//把地址传给前台
model.addAttribute("fileUrl", request.getContextPath() +"/upload/" + filename);
}else{
ret = "2";
}
}else{
ret = "3";
}
return ret;
}
js:
var form = new FormData(document.getElementById("formId"));
//ajax 提交form 表单
$.ajax({
url:basePath+"BI/dataManage/upload.htm",
type:"post",
data:form,
cache: false,
processData: false,
contentType: false,
success:function(ret){
if (ret == 1) {//返回1上传成功
$("#editWin").modal('hide');
$('#dataSourceTable').bootstrapTable('refresh');
alert("上传成功!");
} else if (ret == 2) {//返回2文件类型不符合要求
alert("文件类型不符合要求!");
} else if (ret == 3) {//返回3请选择文件
alert("请选择文件!");
}
},
error:function(e){
alert("上传失败!!");
}
});
String getContentType()//获取文件MIME类型
InputStream getInputStream()//后去文件流
String getName() //获取表单中文件组件的名字
String getOriginalFilename() //获取上传文件的原名
long getSize() //获取文件的字节大小,单位byte
boolean isEmpty() //是否为空
void transferTo(File dest) //保存到一个目标文件中。
注意:form表单上要加enctype="multipart/form-data