Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将文件上载到远程服务器并在nodejs中更改其路径?_Javascript_Node.js_Multer S3 - Fatal编程技术网

Javascript 如何将文件上载到远程服务器并在nodejs中更改其路径?

Javascript 如何将文件上载到远程服务器并在nodejs中更改其路径?,javascript,node.js,multer-s3,Javascript,Node.js,Multer S3,这是我的app.js文件: var express = require('express') , multiparty = require('multiparty') , request = require('request') , fs = require('fs') , util = require('util') , http = require('http'); var app = express(); app.use('/static', ex

这是我的app.js文件:

var express = require('express')
    , multiparty = require('multiparty')
    , request = require('request')
    , fs = require('fs')
    , util = require('util')
    , http = require('http');

var app = express();
app.use('/static', express.static('static'));

process.on('uncaughtException', function (err) {
    console.log(err);
});

app.get('/', function (req, res) {
    res.redirect('static/index.html');
});

app.post('/upload', function(req, res, next){

    //https://github.com/request/request#streaming

    var form = new multiparty.Form();

    form.parse(req, function(err, fields, files) {
        res.writeHead(200, {'content-type': 'text/plain'});
        res.write('received upload:\n\n');
        res.end(util.inspect({fields: fields, files: files}));

    });
    form.on('file', function(name, file) {


    var formData = {
      file: {
        value:  fs.createReadStream(file.path),
        options: {
          filename: file.originalFilename
        }
      }
    };

console.log(formData)
    // Post the file to the upload server
    request.post({url: 'http://192.138.2.73:4000/upload', formData: formData});
    });
});

var server = app.listen(3000, '0.0.0.0' ,function () {
    var host = server.address().address;
    var port = server.address().port;

    console.log('Example app listening at http://%s:%s', host, port);
});
这是upload.js文件:

var express = require('express')
    , multiparty = require('multiparty')
    , cors = require('cors')
    , util = require('util')
    , app = express();

app.use(cors());
process.on('uncaughtException', function (err) {
    console.log(err);
});

app.get('/', cors(), function(req, res, next){
    res.json({msg: 'This is CORS-enabled for all origins!'});
});

app.post('/upload', cors(), function(req, res, next){
    var form = new multiparty.Form();

    form.parse(req, function(err, fields, files) {
        res.writeHead(200, {'content-type': 'text/plain'});
        res.write('received upload:\n\n');
        res.end(util.inspect({fields: fields, files: files}));
    });
    form.on('file', function(name,file) {
        // console.log(file);
        // console.log(name);
    });

});

app.listen(4000, function(){
    console.log('CORS-enabled web server listening on port 4000');
});
我正在将文件从一个系统上传到另一个系统的远程系统。当我在远程系统中运行upload.js,在系统中运行app.js,并从系统上载文件时,文件成功上载到另一个系统。现在我的问题是我上传的所有文件都保存在远程系统“/var/tmp”和我的系统“/var/tmp”中。我需要将此路径更改为我自己定义的路径,例如:/var/www/html/myfolder。那么文件不应该保存在我的系统中

var path_temp = file.path;
var currentFolder = '/var/www/html/..(Your path)';
var filename = path_temp.split('/')[2];
fs.move(path_temp, currentFolder + '/' + filename, function(err) {
 if (err) return console.error(err)
});
将上述代码粘贴到form.on()函数中,它将起作用