Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.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 上载文件并使用multer传递附加参数_Javascript_Node.js_File Upload_Jquery Forms Plugin_Multer - Fatal编程技术网

Javascript 上载文件并使用multer传递附加参数

Javascript 上载文件并使用multer传递附加参数,javascript,node.js,file-upload,jquery-forms-plugin,multer,Javascript,Node.js,File Upload,Jquery Forms Plugin,Multer,我正在使用和将文件上载到我的服务器。这很好,但我正在尝试传递一个额外的参数,它将确定文件的确切保存位置 我有以下代码,我想对其进行扩展,使其符合规定: HTML Node.js路由 注意:我知道我不是在检查mimetype或清理用户文件,但现在这对我来说主要是次要的。问题是,multer首先保存文件,然后才写入表单的剩余部分,例如隐藏字段 试试这个: app.post(APIpath + "file",function(req,res){ var storage = multer.dis

我正在使用和将文件上载到我的服务器。这很好,但我正在尝试传递一个额外的参数,它将确定文件的确切保存位置

我有以下代码,我想对其进行扩展,使其符合规定:

HTML Node.js路由
注意:我知道我不是在检查mimetype或清理用户文件,但现在这对我来说主要是次要的。

问题是,
multer
首先保存文件,然后才写入表单的剩余部分,例如隐藏字段

试试这个:

app.post(APIpath + "file",function(req,res){
    var storage = multer.diskStorage({
        destination: tmpUploadsPath
    });
    var upload = multer({ storage : storage}).any();

    upload(req,res,function(err) {
        if(err) {
            console.log(err);
            return res.end("Error uploading file.");
        } else {
           console.log(req.body);
           req.files.forEach( function(f) {
             console.log(f);
             // and move file to final destination...
           });
           res.end("File has been uploaded");
        }
    });
});

您可以从
req.body
获取
savePath
。我只为
userFile
获取了一个对象,
savePath
从未在
req.body
中出现过。请协助添加移动到最终目的地的示例。在我的例子中,我想移动一个云位置@stdob——我无法访问附加在文件后面的body值。所以我最后添加了文件。非常感谢!帮了我很多忙!我必须使用req.file来获取所需的内容,因此如果上面的内容对您不起作用,只需记录正文,看看您需要的内容是否在其中。
uploadForm.submit(function() {
    $(this).ajaxSubmit({

        error: function(xhr) {
            console.log('Error: ' + xhr.status);
        },

        success: function(response) {
            console.log('Success: ' + response);
        }
    });

    return false;
});
app.post(APIpath + "file",function(req,res){
    var storage = multer.diskStorage({
        destination: absoluteServePath+ "/" + config.filePath,
        filename: function (req, file, cb) {
            cb(null, file.originalname);
        }
    });
    var upload = multer({ storage : storage}).any();

    upload(req,res,function(err) {
        if(err) {
            console.log(err);
            return res.end("Error uploading file.");
        }
        res.end("File has been uploaded");
    });
});
app.post(APIpath + "file",function(req,res){
    var storage = multer.diskStorage({
        destination: tmpUploadsPath
    });
    var upload = multer({ storage : storage}).any();

    upload(req,res,function(err) {
        if(err) {
            console.log(err);
            return res.end("Error uploading file.");
        } else {
           console.log(req.body);
           req.files.forEach( function(f) {
             console.log(f);
             // and move file to final destination...
           });
           res.end("File has been uploaded");
        }
    });
});