ajax文件上传(formdata版)

好处:用ajax无刷新提交带文件的表单

  • 前端

  • html
//name值和后台对应
  • js(前提jquery)
var formData = new FormData($("#orgInfoForm")[0]);
//如果需要别的值表单里面没有,可以通过formData.append(key,value)实现
formData.append("userName","王二狗");
//ajax提交
$.ajax({
    url:"${pageContext.request.contextPath}/这里是url/这里是url",
    type:"POST",
    data:formData,
    processData : false,// 告诉jQuery不要去处理发送的数据
    contentType : false,// 告诉jQuery不要去设置Content-Type请求头
    dataType:"text",
    success:function(data){
        //成功后的操作
    },
    error:function(){
        alert("请求失败")
    }
});
  • 后台

public String aaa(HttpServletRequest request,@RequestParam(value = "coverImage", required = false) MultipartFile filePath){
    //后面都是没用的操作,看看使用方法
    if(filePath!=null){
        fileName = filePath.getOriginalFilename()+System.currentTimeMillis(); ;
        File targetFile = new File(path, fileName);
        File files = new File(path);
        if (!files.exists()) {
            files.mkdirs();
        }
        // 保存
        try {
            filePath.transferTo(targetFile);
        } catch (Exception e) {
            e.printStackTrace();
        }
        experiment.setCoverImage(fileName);
        FileOptUtil fileOptUtil = new FileOptUtil();
        if(!"home_img_pic4.png".equals(experimentById.getCoverImage())){
            fileOptUtil.deleteFile(path+"/"+experimentById.getCoverImage());
        }
    }else{
        experiment.setCoverImage(experimentById.getCoverImage());
    }
}

你可能感兴趣的:(ajax文件上传(formdata版))