[英]Downloading a file sent in response to a POST request via nodejs? (no AJAX)
我有一個nodejs服務器,它不時向我無法控制的外部第三方服務器提交郵寄表格-因此,我無法執行AJAX請求。 我不能使用get。
當我在瀏覽器中運行代碼時,發布請求會導致自動下載到默認位置。
如何將文件下載到nodejs中的服務器文件系統?
當前請求: $form.submit()
我要發布的表格:
var $form = $('<form/>', {
method: 'post',
id: 'myForm',
name: 'myForm',
action: 'example.example'
});
var csvInput=$('<input/>', {name: 'myValue', value: 'Empty', type: 'hidden'});
$form.append(csvInput)
$form.append($('<input/>', {name: 'test X', value: '1', type: 'hidden'}));
$form.append($('<input/>', {name: 'test Y', value: '2', type: 'hidden'}));
$form.append($('<input/>', {name: 'test Z', value: '3', type: 'hidden'}));
(還有近30個輸入字段)
通過使用request
函數和fd的鍵值數組解決了該問題。
request({
method: 'POST',
uri: 'http://example.com/',
headers: {
host: 'example.com',
'content-type': 'application/x-www-form-urlencoded' },
body: $.param(fd)}
).pipe(fs.createWriteStream('myfile.csv'))
如果使用請求模塊,則可以僅將結果流式傳輸到文件中。
var formData = {
myValue: 'Empty',
testX: '1',
testY: '2',
'test Z': '3'
};
request.post('http://example.example', {form: formData}).pipe(fs.createWriteStream('./myfile.txt'))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.