美文网首页
ajax文件上传(formdata版)

ajax文件上传(formdata版)

作者: 河工狗之王二狗 | 来源:发表于2018-10-08 17:12 被阅读0次

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

  • 前端

  • html
//name值和后台对应
<form action="" id="orgInfoForm" method="post" name="orgInfoForm">
    <input id="studentNum" name="userNum" type="text"/>
    <input id="filePath" name="filePath" type="file"/>
</form>
  • 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版)

      本文链接:https://www.haomeiwen.com/subject/hxejaftx.html