java接口需要传入一个文件和一个string 但是我在postman上传没问题 但是我写的这个表单提交后台报错Current request is not a multipart request,求看看我这表单哪不对
第一,题主file文件不能这样获取内容,$('xxx‘).val()只是得到文件名,并不是文件内容
第二,用jquery.ajax上传,需要用到FormData对象,并且要设置
processData: false,
contentType: false,
这2个选项,要不数据被处理过会出问题,
第三,题主的btn是button按钮(未设置type=button)默认为type=submit,会提交表单导致页面刷新,并没有执行ajax上传文件,要给处理函数最后添加return false阻止表单提交
改下面就可以了
<script>
$(function () {
$('#btn').click(function () {
var fd = new FormData($('#formid')[0]);//用到FormData,通过form对象构造或者用fd.append添加也行
$.ajax({
type: 'post',
url: '/DingTalk',
data: fd,
processData: false,
contentType: false,
success: function (res) {
alert(res)
}
});
return false;/////阻止表单提交
});
});
</script>
上传文件不能这样去上传
你的请求头类型如果是二进制流表单类型的话
你需要 new 一个 FormData 向里面 push 数据
推荐你参考一下下面这篇文章 参照改写一下
这个报错的意思是请求不是多部份请求,应该是contentType的原因,但是我看你写了encType,你可以f12看下发送到后台的请求contentType是不是multipart/form-data