对于要添加到formData中的文本值,我使用类Blob,这样文件和文本值都是相同的。
在webservice java中,我有一个multivaluedmap
作为参数,并且只有文本值,我有我的数据。如果我在axios post请求中添加该文件,则会出现错误500并且服务器没有记录任何事件,我认为它会在与multivaluedmap
的映射中崩溃。
然后我尝试使用multivaluedmap
,但问题是一样的。
如果我像预期的那样只使用String作为param,那么在axios post请求的数据中只有第一个条目,它只是值而不是键。
我想知道我是否在react端做了什么不好的事情,但我不熟悉CXF,所以可能是我在java端的做法不好。
@POST
@Consumes("multipart/form-data")
public void createInfoCollection(MultivaluedMap<Object, Object> formData) {
try {
System.out.println("json incoming");
System.out.println(formData);
} catch(Exception e) {
System.out.println("Exception = " + e);
}
}
在react上,代码很简单,如下所示:
const formData = new FormData();
if (this.state.selectedFile) {
// Update the formData object
formData.append(
"selectedFile",
this.state.selectedFile,
this.state.selectedFile.name
);
}
Object.keys(this.state).map(key => {
if (key != 'selectedFile') {
let value = this.state[key];
const json = JSON.stringify(value);
const blob = new Blob([json], {
type: 'application/json'
});
formData.append(key, blob, key);
// formData.append(key, this.state[key]);
}
});
const config = {
headers: {
'content-type': 'multipart/form-data'
}
}
axios.post("My/Url/That/Works/Well/With/GetRequests", formData, config)
.catch(error => {
console.log(error);
});
编辑:我发现了java端的multipartbody
,但我还在学习如何使用它
好的,我找到了一个使用multipartbody formdat
的解决方案
在此对象中,有标头content-disposition
,该标头具有属性名称name
和属性filename
(如果content-type
是application/octet-stream
)。
如果文件旁边有其他数据,则该文件没有任何content-type
,但在解析content-disposition
之后,获取名称的方法与属性name
相同。
然后在multipartbody
上有附件,通过attachment.GetDataHandler().GetInputStream()
我有文件的内容以及其他数据的基本值(如果有的话)。
有了标题和附件之间的匹配,我想我可以做任何我需要做的事情。
谢谢你给了我新的灵感StackOverFlow!
我在后端使用spring-boot 2.0.4,在前端使用vue 2.5.16 / axios 0.18.0,我希望将PDF文件上传到后端数据库,并从前端检索它们。 最初,我的灵感来自于spring部分的这个例子:https://grokonez . com/frontend/angular/angular-6/angular-6-client-upload-files-download-file
我正在努力使用axios将xml文件上载到我的asp。net服务器。我正在使用vue端的以下代码获取一个xml文件,该文件正在工作,然后将其上载到我的服务器: 在asp。net端我得到了这个函数: 上载文件会导致代码415:不支持的媒体类型。 我找到了一些建议将xml格式化程序添加到我的项目中,这不起作用,而且我不想解析xml文件,我只想将文件保存到我的文件系统中。 我尝试将原始文件和解析的文本与
如何将文件发送到WebService?为了上传文件,我需要使用multipart/form-data;我想知道如何使用PHP中的curl来实现这一点。 我的代码是: 服务器上的故障是: 我怎样才能解决这个问题?
问题内容: 实际上,我正在使用带有Angular 2编码的接口的Spring REST API。 我的问题是我无法使用Angular 2上传文件。 我在Java中的Webresources是: 当我通过带有Auth标头等的URL请求调用它时(它具有适用于Chrome的Advanced Rest Client扩展),它完全可以正常工作 证明:(在这种情况下,一切正常) Spring配置文件和Pom依
问题内容: 尝试将文件上传到S3存储桶时遇到问题。一切正常,除了我的文件参数似乎不合适。我正在使用Amazon S3 SDK从Node.js上载到S3。 这些是我的路线设置: 这是items.upload()函数: 将param 设置为类似字符串的效果很好。根据doc,param必须获取 (缓冲区,类型数组,Blob,字符串,ReadableStream)对象数据。 但是,上传文件对象失败,并显示
问题内容: 是否可以使用http put方法将本地文件上传到保管箱?我正在上传文件,但没有文件?(“字节”:0) 如何向文件添加内容? 我的代码如下: 我的文件已成功上传,但没有内容?它是空的!该文档对我来说有点困惑:https : //www.dropbox.com/developers/core/docs#files_put 问题答案: @smarx:我正在发送一个空的HTTP PUT请求,最