2016-11-28 60 views
4

我有一个特定的任务:我需要从源URL下载图像,并通过POST请求将其上传到另一个主机作为multipart/form-data。我试图使用node.js请求库,但从来没有成功。 以下代码不会在请求正文中发送任何内容。如何使用npm请求将图像作为表单数据进行POST?

request.post({ 
    url: uploadUrl, 
    formData: { 
    photo: request(imageUri) 
    } 
}, function (err) { 
    if (err) console.error(err.stack) 
}); 

我试过直接通过表单数据库,但它似乎并不工作。如何在不创建临时文件的情况下解决此问题?

+0

你需要等待,直到你有图像数据发送表单数据。一旦你从'request(imageUri)'中得到了来自它的回调参数的照片,你就可以继续处理主帖。 – magreenberg

+0

@magreenberg我虽然可以以某种方式管它吗?你打算把它完全下载到内存中,然后发布? – Bolein95

回答

0

问题原来是我的imageUri有查询参数。我认为这是一个在form-data库中的bug。删除查询参数解决了这个问题。

0

正如我在我的评论中所说的,您需要等到您有图片发出发布请求。如果你想管流,你可以尝试这样的事情...

request.get(imageUri).pipe(request.post(uploadUri)); 

希望有所帮助。

+0

谢谢,但我必须发布图像作为表格数据 – Bolein95

+0

然后,你将不得不在本地保存第一。 – magreenberg

相关问题