我需要将文件从任何 url 下载到运行应用程序的服务器。我在 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);
最佳答案
你有服务器的写权限吗(假设你的本地是 mac/windows,服务器是 Linux 机器)?如果不分配权限
关于javascript - 使用node.js从url下载文件到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43863842/