javascript - 使用node.js从url下载文件到服务器

标签 javascript node.js

我需要将文件从任何 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/

相关文章:

javascript - jQuery 动画背景大小属性

javascript - 通过java API从orientdb调用JS函数

node.js - 显示错误的最佳方式 Express、Jade 和 Mongo

node.js - 在nodejs中使用ES模块时PM2崩溃

javascript - Node.js Q promise ,可以使用 this() 为什么要使用 defer()?

javascript - 如何在Symfony2中通过javascript访问html twig表单字段值?

javascript - 嵌入iFrame表单——如何获取父URL

javascript - 只需一个对话框提示即可实现从浏览器到设备的自动保存

node.js - 以正确的方式使用 Azure blob 容器?

mysql - 使用 Sequelize fixtures 导入具有嵌套关联的数据