javascript - 使用 JS 和 NodeJS 上传文件发布请求
问题描述
我有以下请求,我想在 nodejs 中写一个 post 请求:
POST /rest-api/hashDb/createAndUpload HTTP/1.1
主机:192.168.101.54
连接:保持活动
内容长度:428
用户代理:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
内容类型:multipart/form-data;边界=----WebKitFormBoundaryQGLkZW0bVDsvWPEY
接受:/
参考:https ://192.168.101.54/ufed/index.html
接受编码:gzip、deflate、br
接受语言:en-US,en;q=0.9,es;q=0.8,he;q=0.7
Cookie:JSESSIONID=s3a5sjc6wp1y1k9hv5advlf3a
这是我写的代码,但它不起作用(文件没有上传):
var FormData = require('form-data');
var fs = require('fs');
var request = require("request")
// var XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest;
let filePath = "C:\\Temp\\directory.txt"
let myFile = fs.readFileSync(filePath,'utf8');
var formData = new FormData();
formData.append("myFile", myFile, "directory.txt");
var bounding = {"id":null,"type":"HashDbDto","name":"jorge1","fileType":"TXT","version":"1.2","redaction":false,"categories":[],"format":"MD5"};
formData.append("myFile", JSON.stringify(bounding));
request({
headers: {'content-type': 'multipart/form-data; boundary=----WebKitFormBoundaryeiNygPyQcm8jomRB'},
url: "https://192.168.101.54/rest-api/hashDb/createAndUpload",
method: "POST",
form: formData
});
你的解决方案是什么?
解决方案
使用formData
密钥而不是form
密钥
request({
headers: {'content-type': 'multipart/form-data; boundary=----WebKitFormBoundaryeiNygPyQcm8jomRB'},
url: "https://192.168.101.54/rest-api/hashDb/createAndUpload",
method: "POST",
form: formData
})
请参阅https://www.npmjs.com/package/request。对于 multipart/form-data,我们使用@felixge 的表单数据库。在大多数情况下,您可以通过 formData 选项传递您上传的表单数据。
推荐阅读
- python - Django允许为单个记录上传多个文件
- java - 我刚刚安装了flutter android studio和dart,但是现在当我通过简单地运行初始代码来检查我的模拟器设置时,它会显示错误
- react-native - 本机级别的拦截器在本机反应中
- google-cloud-platform - 是否可以更改在 GCP 中使用 slurm 集群创建的 VM 的 CPU 规格?
- python - 如何从 m4a 文件中获取帧数?
- javascript - 如何通过 put 方法部分更新 mysql 记录而不将其他属性留空
- javascript - 如何在用户表 Laravel 中插入从多选下拉列表中选择的值
- reactjs - 如何修复类型错误 Type '(string | Element) [] is not assignable to type 'string | 元素 | 使用反应和打字稿未定义'?
- angular - 反应式表单验证不适用于 ControlValueAccessor
- firebase - Firebase :: 创建具有角色的第一个用户