2017-05-09 51 views
0

我需要將文件從任何網址下載到運行該應用程序的服務器。我在Node.js中使用了以下代碼。它在localhost的情況下工作。但不是在服務器的情況下。使用node.js將文件從網址下載到服務器

var express = require('express'); 
var app  = express(); 
var http = require('http'); 
var https = require('https'); 
var request = require('request'); 
var fs  = require('fs'); 
var path = require('path'); 

app.get('/', function(request, response){ 
    response.send('connection established...!'); 
}); 

app.get('/download', function(request, response){ 
    var file  = "https://c1.staticflickr.com/6/5219/5450451580_7f066f7868_b.jpg"; 

    var filename = path.basename(file); 
    var ssl  = file.split(':')[0]; 
    var dest  = __dirname +'downloads/'+ filename; 
    var stream = fs.createWriteStream(dest); 

    if (ssl == 'https') { 
     https.get(file, function(resp) { 
      resp.pipe(stream); 
      response.send('file saved successfully.*'); 
     }).on('error', function(e) { 
      response.send("error connecting" + e.message); 
     }); 
    } else { 
     http.get(file, function(resp) { 
      resp.pipe(stream); 
      response.send('file saved successfully.*'); 
     }).on('error', function(e) { 
      response.send("error connecting" + e.message); 
     }); 
    } 
}); 
app.listen(process.env.PORT || 3000); 
+0

您是否在服務器上發生錯誤?你正在流式傳輸下載的文件嗎? – notionquest

+0

服務器上沒有錯誤 –

回答

0

你有寫權限的服務器(假設你的地方是MAC/Windows和服務器是Linux盒)?如果沒有分配權限

+0

實際上這是我第一次使用Node.js ..所以我通過使用異常處理來獲得寫權限錯誤 –

+0

我相信你不會在服務器上寫任何東西。您只是流式傳輸下載的內容..您需要添加console.log並查看會發生什麼.. – notionquest

相關問題