我正在尝试使用node.js和请求模块将数据与文件一起发布到远程服务器,代码发送没有文件的数据。 我使用docs示例 https://github.com/request/request#forms
我可以使用php curl使用下面的代码发布相同的数据,所以我知道远程服务器代码可以工作。
我做错了什么?
$post = array(
'sessionId' => 1234,
'source' => 'text',
'files[jpg]' => '@' . $file_name_with_full_path
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $target_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
我的node.js代码
var fs = require("fs");
var formData = {
sessionId: 1234,
source: 'text',
files: JSON.stringify (
{jpg: fs.createReadStream( __dirname +"/"+ file.txt)}
)
request.post({url: 'https://url', formData: formData},
function optionalCallback(err, httpResponse, body) {
});
答案 0 :(得分:0)
此代码已成功发布该文件。
var r = request.post('https://url', function optionalCallback(err,httpResponse, body) { })
var form = r.form();
form.append('sessionId', 1234);
form.append('source', 'text');
form.append('file[jpg]', fs.createReadStream( __dirname +"/"+ file.txt);