如果一个应用程序的前端是vue.js,后端是java,那么就可以像这样简单地发送附加文件的内容:
vue.js方面的一些东西:
<input type="file" id="files" ref="files" @change="previewFiles" placeholder="Add file"/>
//...
previewFiles() {
this.fileName = this.$refs.files.files[0].name;
this.files = this.$refs.files.files;
},
//...
var backendData = {
documentType: this.documentType,
fileName: this.fileName,
fileData: this.files[0]
}
var backendOptions = {
headers: {
'Authorization': localStorage.getItem("authToken")
}
};
axios.post(backendUrl, backendData, backendOptions);
java端的一些成员字段:
@Field
private String documentType;
@Field
private String fileName;
@Field
private byte[] fileData;
实际上它不起作用。我不知道我要改变什么:
fileData: this.files[0]
... 在声明中:
@Field
private byte[] fileData;
这是我收到的错误:
400 JSON parse error: Cannot deserealize instance of byte[] out of START_OBJECT token
nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException
任何帮助都将受到感激。
暂无答案!
目前还没有任何答案,快来回答吧!