java文件上传(MultipartFile)

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

你可能感兴趣的:(java文件上传,MultipartFile)