wangeditor上传图片报406错误
老师您好,我在用wangeditor上传图片的时候报406错误,在APIfox中测试接口时是没问题的。

但是用wangeditor上传的时候就会报406错误,然后后端也会有报错,但是文件是已经在服务器端保存成功了。
相关截图:


后端相关代码:
@PostMapping("upload")
@ResponseBody
public Map upload(@RequestParam("img") MultipartFile file, HttpServletRequest request) {
String filename = file.getOriginalFilename();
assert filename != null;
String suffixName = filename.substring(filename.lastIndexOf("."));
String newFileName = UUID.randomUUID()+ suffixName;
File fileDirectory = new File(Constant.FILE_UPLOAD_DIR);
File destFile = new File(Constant.FILE_UPLOAD_DIR + newFileName);
if (!fileDirectory.exists()) {
if (fileDirectory.mkdir()) {
throw new BusinessiException(ExceptionEnum.MKDIR_FAIL);
}
}
try {
file.transferTo(destFile);
} catch (IOException e) {
throw new RuntimeException(e);
}
Map result=new HashMap();
try {
String fileURI = getHost(new URI(request.getRequestURL() + "")) + "/images/" + newFileName;
result.put("errno",0);
Map dataMap=new HashMap();
dataMap.put("url",fileURI);
// dataMap.put("alt",newFileName);
result.put("data",dataMap);
return result;
} catch (URISyntaxException e) {
result.put("errno",1);
result.put("message","上传失败");
return result;
}
}
private URI getHost(URI uri) {
URI effectiveURI;
try {
effectiveURI = new URI(uri.getScheme(), uri.getUserInfo(), uri.getHost(), uri.getPort(), null, null, null);
} catch (URISyntaxException e) {
effectiveURI = null;
}
return effectiveURI;
}前端相关代码:
const editorConfig = { MENU_CONF: {},placeholder: '请输入内容...' }
editorConfig.MENU_CONF['uploadImage'] = {
server: 'http://192.168.10.73:8880/article/upload', // 上传图片地址
timeout: 5 * 1000, // 5s
fieldName: 'img',
headers: {Accept: 'text/x-json'},
maxFileSize: 10 * 1024 * 1024, // 10M
onBeforeUpload(files) {
console.log('onBeforeUpload', files)
return files // 返回哪些文件可以上传
// return false 会阻止上传
},
onProgress(progress) {
console.log('onProgress', progress)
},
onSuccess(file, res) {
console.log('onSuccess', file, res)
},
onFailed(file, res) {
alert(res.message)
console.log('onFailed', file, res)
},
onError(file, err, res) {
alert(err.message)
console.error('onError', file, err, res)
},
}14
收起
正在回答
1回答
出现406一般有两种原因:
1、Jackson包不存在(springMVC默认依赖Jackson包 )。
2、使用了@ResponseBody,返回数据后缀是.json,但是映射器后缀又是.html.最后浏览器收到数据不知该以哪种类型数据来进行解析,所以就会报406状态码
顺便看看这个https://blog.csdn.net/qq_39137555/article/details/94721322
相似问题
登录后可查看更多问答,登录/注册
java工程师2020版
- 参与学习 人
- 提交作业 9410 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程

恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星