首页 > 编程知识 正文

formdata上传文件附加参数,nodejs7安装及环境配置

时间:2023-05-04 14:12:06 阅读:127556 作者:3421

最近,需要在nodejs后端将图像上传到云存储服务器。 正好熟悉axios这个库,所以我开始在网上查资料,但网上很多都是在axios上传文件到前端的代码,基于浏览器环境。 然后,我们找到了基于Nodejs环境的axios上传代码,进行了复制,然后开始测试。 虽然本以为会顺利进行,但服务器方面总是返回以下错误。 也就是说,我们的要求没有以多数据/表单-数据的形式封装。

thebodyofyourpostrequestisnotwell-formed多点/form-data。

后来,我在Stack Overflow上找到了遇到和我一样问题的哥哥。 查看网友的回答,服务器无法解析我们的数据,因为header中没有包含content-length。 所以我们封装form-data后,取得其长度并添加到header中后请求就可以了~

附加完整代码:

常数fs=require (' fs ); constaxios=require(axios ); 常数格式数据=请求(格式数据); var本地文件=fs.createreadstream ('./' file key ); var formData=new FormData (; formdata.append('key ',fileKey ); formdata.append('signature ',data.authorization ); formdata.append('file ',localFile ); var headers=formData.getHeaders (; //headers//form-data的长度formdata.getlength (async function (err,length ) if ) err ) { return; //设定长度,导入! headers [ ' content-length ' ]=length; awaitaxios.post(data.URL,formData,{headers} ).then ) RES={console.log )、res.data ); }.catch(RES={console.log ) RES.data ); () )

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。