使用 axios 上传图片错误,但是使用 postman 可以上传
$imgAdd (pos, $file) {
let vm = this.$refs.md
// 第一步.将图片上传到服务器.
let formdata = new FormData()
formdata.append('image',$file)
axios({
headers: { 'Content-Type': 'multipart/form-data' },
url: 'http://localhost:8080/api/v1/image/upload/markdown',
method: 'post',
data: { 'image': formdata }
}).then((url) => {
// 第二步.将返回的 url 替换到文本原位置![...](0) -> ![...](url)
/**
* $vm 指为 mavonEditor 实例,可以通过如下两种方式获取
* 1. 通过引入对象获取: `import {mavonEditor} from ...` 等方式引入后,`$vm`为`mavonEditor`
* 2. 通过$refs 获取: html 声明 ref : `<mavon-editor ref=md ></mavon-editor>,`$vm`为 `this.$refs.md`
*/
// vm.$img2Url(pos, url)
}).catch(function (error) {
alert(error)
})
}
java 中的错误信息为
org.apache.tomcat.util.http.fileupload.FileUploadException: the request was rejected because no multipart boundary was found
java 代码
@RequestMapping(value = "markdown")
@ResponseBody
public JsonData upload(@RequestParam("image") MultipartFile file) {
if (file.isEmpty() || file.getSize() > FileSize.MB_COEFFICIENT) {
return JsonData.buildError("文件不存在或者文件太大");
}
String name = file.getOriginalFilename();
String suffixName = null;
if (name != null) {
suffixName = name.substring(name.indexOf(".") - 1);
} else {
suffixName = ".jpg";
}
String fileName = UUID.randomUUID() + suffixName;
File markdownImageFile = new File(MARKDOWN_IMAGE_FILE +fileName);
try {
file.transferTo(markdownImageFile);
return JsonData.buildSuccess(fileName);
} catch (IOException e) {
e.printStackTrace();
return JsonData.buildError(e.getMessage());
}
}
麻烦大佬们帮忙看看外网测试地址 http://api.ngrok.peixy.top/api/v1/image/upload/markdown
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.