可以从以下几个方面在来排除这个问题:
-
1.自己的请求头是否是multipart类型的
-
如果是使用的html静态页面进行测试的话,可以排查一下自己是否制定了请求类型,例如:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <!-- 在这里指定为mutilpart类型--> <form action="http://localhost:8080/upload" enctype="multipart/form-data" method="post"> <!--同时可以在input标签上再次申明一下--> <input type="file" name="file" multiple="multiple">文件上传 <input type="submit" value="确定"> </form> </body> </html>
-
-
2.使用postman还可以进行类型的指定
-
将postman中自动设置的Accept属性取消
-
自定义添加Accept属性,并指定数据类型
-
body选择form-data进行上传
-
-
3.这一个是新手有可能会忽略的一点
-
在进行文件的上传的时候,使用post请求
- 因为在进行数据传输的时候,post请求会将数据打包,变成流的形式进行传输,而默认的get请求会直接将传入的文件名作为数据传输给后端,所以后端就会一直报错Current request is not a multipart request。
-
例如(上面那个例子),如果使用get请求:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <!-- 在这里指定为mutilpart类型--> <form action="http://localhost:8080/upload" enctype="multipart/form-data" method="get"> <!--同时可以在input标签上再次申明一下--> <input type="file" name="file" multiple="multiple">文件上传 <input type="submit" value="确定"> </form> </body> </html>
在进行get请求的时候就会变成这样:
-
输入路径并选择文件
-
结果就是直接将文件名作为数据拼接到后面,传输给后端,所以会一直报错