2017-02-23 252 views
0

Я хотел бы знать, как могу загрузить a Параметры отправки файла от POST. Например, у меня есть счет , где у меня есть сохранен путь к файлу, и я хочу, чтобы отправил этот путь через параметры, чтобы загрузить его. Но теперь я могу сделать это только с ГЭТ:Как скачать файл с http post Node.js

Сервер:

app.get('/getfile', isLoggedIn, function(req, res) { 
      res.download('uploads/myExcelFile.xlsx', "myExcelFile.xlsx"); 
}); 

Клиент:

window.open('/getfile'); 

Или:

<a href="getfile" download="myExcelFile.xlsx">Download Text</a> 

ответ

2

Вы можете использовать экспресс для этого

var express = require('express'); 
var app = express(); 

app.get('/files/:file', function(req, res, next){ // this routes all types of file 
    res.download("./" + req.params.file); 
}); 

app.listen(3000, function() { 
    console.log('Example app listening on port 3000!') 
}); 

Вы можете использовать этот адрес (локальный: 3000/файлы/Myfile.txt), предполагающие файл существует верный

+0

Спасибо так много! –

0

Сначала вы должны установить некоторую информацию заголовка, после чего создать файл и передать поток через ответ.

app.post('/getfile', isLoggedIn, function(req, res) { 
     res.writeHead(200, { 
      'Content-Type': 'audio/mpeg', 
      'Content-Length': stat.size, 
      'Content-Disposition': 'attachment; filename=your_file_name' 
     }); 


     var file = fs.readFile(filePath, 'binary'); 

     res.setHeader('Content-Length', stat.size); 
     res.setHeader('Content-Type', 'audio/mpeg'); 
     res.setHeader('Content-Disposition', 'attachment; filename=your_file_name'); 
     res.write(file, 'binary'); 
     res.end(); 
    }); 

В интерфейсе создания JavaScript форма объекта и представить

var form = document.createElement("form"); 
form.setAttribute("method", "post"); 
form.setAttribute("action", "URL"); 
form.submit();