在使用layui上传文件的时候,总是提示上传接口异常。
1、首先查看浏览器控制台的的网络显示,发现端口是500,说明是后台程序的问题。
2、然后百度,大多数的回答是:服务器返回值有问题。然后更改了不同类型的返回值。
下面是我改的两种代码:(layui默认的MultipartFile 的参数是file)
@RequestMapping("/uploadfile") @ResponseBody public JSONObject uploadfile(MultipartFile file) { System.out.println("你好.........."); JSONObject jsonObject = new JSONObject(); jsonObject.put("success", 1); jsonObject.put("message", "上传成功"); return jsonObject; } //返回Map结合 @RequestMapping("/uploadfile") @ResponseBody public Map<String, Object> uploadfile(MultipartFile file) { System.out.println("你好.........."); Map map = new HashMap<String, Object>(); map.put("msg", "error"); map.put("code", 0); return map; }
3、上面的代码在控制台连“你好…”都输出不了,怎么可能是返回的参数的问题呢。
其实上面的两种返回方法都可以,直接返回字符串也没有什么问题
4、我想是不是MultipartFile file的问题呢,然后前端添加参数:field
var uploadInst = upload.render({ elem: '#test1' , url: '/uploadfile' , field: 'editormd-image-file' //表单的name值 .......
后端改成下面的代码,然而依旧报错。说明和field参数没有关系,其实使用默认的file接收就行。
@RequestMapping("/uploadfile") @ResponseBody public JSONObject uploadfile(@RequestParam(value = "editormd-image-file") MultipartFile file) {......};
5、既然是MultipartFile 的传参有问题,那我就把你删了吧。
@RequestMapping("/uploadfile") @ResponseBody public Map<String, Object> uploadfile() { System.out.println("你好.........."); Map map = new HashMap<String, Object>(); map.put("msg", "error"); map.put("code", 0); return map; }
控制台输出:“你好…”。前端也有了返回值,服务器也不报500了。
6、发现是MultipartFile出了问题,是不是配置文件出了问题了呢?
一查发现,果然是MultipartFile出了问题,因为昨天我把springmvc.xml里MultipartFile的配置给删除了。之前运行的还能上传文件呢,结果突然不能上传了,怎么也没想到配置环境出了问题。
在springmvc.xml文件中添加下面代码就可以了。
<!--配置文件解析器对象-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="10485760"/>
</bean>