从 curl 到 HTTPS 请求
from curl to HTTPS request
我在转换此 cURL 时遇到问题:
curl -F email=myname@example.com -F file=@file.txt https://srv-file6.gofile.io/uploadFile
(srv-file6.gofile.io 是一个例子,现实中是类似 srv-store6.gofile.io 的东西,从请求本身看)
进入 node.js 上的 HTTPS 请求。
var xmlhttprequest = require ("xmlhttprequest").XMLHttpRequest;
var xhr = new xmlhttprequest();
xhr.open('POST','https://srv-store6.gofile.io/uploadFile',false,null,null);
xhr.setRequestHeader('Content-Type','multipart/form-data');
xhr.send('email=test@test.com&file=C:\Users\marco\Pictures\programming\Cattura.png');
xhr.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
console.log(this.responseText);
}
}
我试过使用 xmlhttprequest 但没有用,我没有收到任何错误消息作为响应,但它没有上传文件。
那是我从 api cURL 获取的网站:https://gofile.io/api
为了发送文件,首先您需要在您的代码中阅读它。您可以读取文件,然后发送。否则,您可以使用下面的示例,该示例使用 fs
库读取文件,然后使用 node-fetch
库发送文件。
首先,安装node-fetch
库:
npm i node-fetch
然后,试试下面的例子:
const fetch = require('node-fetch');
var FormData = require('form-data');
let fs = require('fs');
let file = fs.createReadStream('C:/Users/marco/Pictures/programming/Cattura.png');
var formData = new FormData();
formData.append('file', file );
formData.append('email', 'test@test.com' );
// @ts-ignore
fetch('https://srv-store6.gofile.io/uploadFile', {
method: 'POST',
body: formData
})
.then(function(res) {
return res.json();
}).then(function(json) {
console.log(json);
});
我建议您按照此处报告的说明进行操作 https://developer.ibm.com/recipes/tutorials/uploading-files-to-web-server-using-ajax-xhr/
是服务端操作还是前端页面使用?请post你的首页也。
您发送的是字符串而不是文件数据。
var formData = new FormData();
formData.append(‘myFile’, files[0], files[0].name);
var xhr = new XMLHttpRequest();
xhr.open(‘POST’, ‘/upload’, true);
xhr.onload = function () {
if (xhr.status === 200) {
alert(‘File successfully uploaded’)
} else {
alert(‘File upload failed!’);
}
};
xhr.send(formData);
我在转换此 cURL 时遇到问题:
curl -F email=myname@example.com -F file=@file.txt https://srv-file6.gofile.io/uploadFile
(srv-file6.gofile.io 是一个例子,现实中是类似 srv-store6.gofile.io 的东西,从请求本身看)
进入 node.js 上的 HTTPS 请求。
var xmlhttprequest = require ("xmlhttprequest").XMLHttpRequest;
var xhr = new xmlhttprequest();
xhr.open('POST','https://srv-store6.gofile.io/uploadFile',false,null,null);
xhr.setRequestHeader('Content-Type','multipart/form-data');
xhr.send('email=test@test.com&file=C:\Users\marco\Pictures\programming\Cattura.png');
xhr.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
console.log(this.responseText);
}
}
我试过使用 xmlhttprequest 但没有用,我没有收到任何错误消息作为响应,但它没有上传文件。
那是我从 api cURL 获取的网站:https://gofile.io/api
为了发送文件,首先您需要在您的代码中阅读它。您可以读取文件,然后发送。否则,您可以使用下面的示例,该示例使用 fs
库读取文件,然后使用 node-fetch
库发送文件。
首先,安装node-fetch
库:
npm i node-fetch
然后,试试下面的例子:
const fetch = require('node-fetch');
var FormData = require('form-data');
let fs = require('fs');
let file = fs.createReadStream('C:/Users/marco/Pictures/programming/Cattura.png');
var formData = new FormData();
formData.append('file', file );
formData.append('email', 'test@test.com' );
// @ts-ignore
fetch('https://srv-store6.gofile.io/uploadFile', {
method: 'POST',
body: formData
})
.then(function(res) {
return res.json();
}).then(function(json) {
console.log(json);
});
我建议您按照此处报告的说明进行操作 https://developer.ibm.com/recipes/tutorials/uploading-files-to-web-server-using-ajax-xhr/
是服务端操作还是前端页面使用?请post你的首页也。
您发送的是字符串而不是文件数据。
var formData = new FormData();
formData.append(‘myFile’, files[0], files[0].name);
var xhr = new XMLHttpRequest();
xhr.open(‘POST’, ‘/upload’, true);
xhr.onload = function () {
if (xhr.status === 200) {
alert(‘File successfully uploaded’)
} else {
alert(‘File upload failed!’);
}
};
xhr.send(formData);