Javascript 文件从express服务器上载到其他服务器(REST API)
我想将图像从一台服务器上传到另一台服务器(Java)。早些时候,我在前端使用API,在那里我使用表单数据上传文件,工作正常。现在我想在nodeJS上使用相同的API来上传图像。问题是RESTAPI不接受该格式,并给出以下错误Javascript 文件从express服务器上载到其他服务器(REST API),javascript,node.js,graphql,apollo-server,Javascript,Node.js,Graphql,Apollo Server,我想将图像从一台服务器上传到另一台服务器(Java)。早些时候,我在前端使用API,在那里我使用表单数据上传文件,工作正常。现在我想在nodeJS上使用相同的API来上传图像。问题是RESTAPI不接受该格式,并给出以下错误 org.eclipse.jetty.io.RuntimeIOException:java.io.IOException:缺少初始多部分边界 这是我的密码 import FormData from 'form-data'; async uploadFile(file: a
org.eclipse.jetty.io.RuntimeIOException:java.io.IOException:缺少初始多部分边界
这是我的密码
import FormData from 'form-data';
async uploadFile(file: any): Promise<any> {
const url = new URL(`https://dev.dummer.com/portal/file/v1/uploadFile`);
const { createReadStream: apolloFileStream, mimetype, filename } = await file;
const tempFilename = `${filename}`;
const stream = apolloFileStream();
const wstream = createWriteStream(tempFilename);
await new Promise((resolve, reject) => {
stream
.pipe(wstream)
.on('finish', () => resolve())
.on('error', () => reject());
});
const rstream = createReadStream(tempFilename);
const formData = new FormData();
formData.append('uploadingFile', rstream);
const response = await this.post(url.toString(),
{
data: formData
}
, {
headers: {
'Content-Type': 'multipart/form-data'
}
});
return true
}
从“表单数据”导入表单数据;
异步上传文件(文件:any):承诺{
constURL=新url(`https://dev.dummer.com/portal/file/v1/uploadFile`);
const{createReadStream:apolloFileStream,mimetype,filename}=wait file;
常量tempFilename=`${filename}`;
const stream=apolloFileStream();
const wstream=createWriteStream(tempFilename);
等待新的承诺((决定,拒绝)=>{
流动
.管道(wstream)
.on('finish',()=>resolve())
.on('错误',()=>拒绝());
});
const rstream=createReadStream(tempFilename);
const formData=new formData();
append('uploadingFile',rstream);
const response=等待this.post(url.toString(),
{
数据:formData
}
, {
标题:{
“内容类型”:“多部分/表单数据”
}
});
返回真值
}
因此,在上面的代码中,我从graphql接收文件对象,然后将文件存储在本地文件系统中,并再次读取以将其发送回API。请尝试。。。有很多node.js上传问题。。。来自graphql的源代码并不重要