2016-11-15 5 views
0

Я хочу загрузить текстовый файл с сервера NodeJS на локальную машину клиентов с помощью AngularJS в качестве интерфейса. Если путь хранения клиента находится на локальном компьютере в загружаемом файле/testdownload.Загрузить файл с сервера NodeJS на локальный компьютер

в моем внутреннем интерфейсе у меня есть:

router.get('/upload', function(req, res){ 
    var data= fs.readFileSync('../uploads/'+ file); 
     fs.writeFile(??+req.file.filename, file, function(err){ 
      if(err){ 
       return console.log(err); 
      } 
      console.log('Saved File: ' + req.file.filename); 
     }) 
}) 

в моем Угловом:

this.download= function(){ 
     $http.get('/creations/upload').then(function success(response){ 
        console.log(response.data); 

      }, function error(response){ 
       response.data; 
     }) 
    } 

Я связал эту функцию с помощью кнопки. Какой путь мне нужно написать в функции nodejs fs.writeFile, чтобы сохранить файл на локальном компьютере/downloads/testfile?

ответ

0

Это поможет вам .. здесь я использовал busboy для публикации и получения файла.

Это внутренний код. Просто вы должны называть это api из front-end.

'use strict' 

var express = require('express'); 
var router = express.Router(); 
var fs = require('fs-extra'); 


//Get file 
router.get('/:file', function(req, res, next) { 
    //this is where your file will be downloaded  
    var filenamewithpath = '/home/downloads/' + req.params.file; 

    if (!fs.existsSync(filename)){ 
    res.status(404).json({'message' : 'file not found'}) 
    return; 
    } 
    res.download(filename , fileToShow) 
}); 

//Post file 
router.post('/', function(req, res, next) {  
    req.pipe(req.busboy); 
    req.busboy.on('file', function (fieldname, file, filename) {  
    var fstream = fs.createWriteStream('/home/temp/' + filename); 
    file.pipe(fstream);  
    fstream.on('close', function() { 
     res.status(201).json({file: filename}); 
    }); 
    }); 
}); 

module.exports = router; 
0

Если вы знаете полный путь к файлу в сервере, можно положить, что в HTML-тега привязки, чтобы загрузить это правильно?

<a href="http://<path to file>">Download</a>