NODE可以直接从ftp下载文件并传给前端吗
时间: 2023-08-05 12:05:31 浏览: 240
是的,Node.js可以直接从FTP服务器下载文件并将其传递给前端。可以通过使用Node.js的内置模块`http`和`fs`来实现这个功能。下面是一个示例代码:
```javascript
const http = require('http');
const fs = require('fs');
const FTP = require('ftp');
const ftpClient = new FTP();
ftpClient.connect({
host: 'ftp.example.com',
user: 'username',
password: 'password'
});
ftpClient.on('ready', () => {
ftpClient.get('/path/to/file', (err, stream) => {
if (err) throw err;
const fileWriteStream = fs.createWriteStream('/path/to/local/file');
stream.pipe(fileWriteStream);
stream.on('end', () => {
console.log('File downloaded successfully.');
ftpClient.end();
const fileReadStream = fs.createReadStream('/path/to/local/file');
const server = http.createServer((req, res) => {
res.setHeader('Content-disposition', 'attachment; filename=example.txt');
res.setHeader('Content-type', 'text/plain');
fileReadStream.pipe(res);
});
server.listen(3000, () => {
console.log('Server started on port 3000.');
});
});
});
});
```
这段代码会连接到FTP服务器,下载指定路径下的文件,并将其保存到本地文件系统中。下载完成后,会创建一个HTTP服务器,将下载的文件作为响应体传递给前端。前端可以通过访问HTTP接口来获取文件。注意,`Content-disposition`头部指定了文件下载时的名称,可以根据实际需求进行修改。
阅读全文