Sails.js : post 同时输入文本和一个文件

Sails.js : post text input and a file in the same time

我想在表单中发送一个文件和一个隐藏的输入文本。

<form method="POST" action="/api/import_xlsx_data" enctype="multipart/form-data">
<input type="file" name="xlsx_file_to_import" accept=".xlsx" required>
<input id="url" type="HIDDEN" name="url" value="url-value">
<input type="submit" value="Envoyer">

在我的控制器中 request.body 等于 {}。
当我删除 enctype="multipart/form-data" 它适用于我的文本但不适用于我的文件。

上传我的文件:

uploadFile.upload({saveAs : fileName, dirname : directoryName},function onUploadComplete(err, files) { ...............});

我的控制器:

 importXLS: function (req, res) {
    var uploadFile = req.file('xlsx_file_to_import');
    //console.log(req.params()); -> send error params is not a function
    console.log(req.body); // send me {}
    console.log(req.param('url')); //send me undefined


...... }

关于 pastbin 的更多代码: 我的观点:view
我的控制器:controller

要检索您的字段,您需要使用:

request.param("url")

你的文件

var file = request.file("xlsx_file_to_import");

使用 skipper 作为正文解析器,您必须在 文件输入之前 发送文本参数。

试试这个:

<form method="POST" action="/api/import_xlsx_data" enctype="multipart/form-data">
  <input id="url" type="HIDDEN" name="url" value="url-value">  
  <input type="file" name="xlsx_file_to_import" accept=".xlsx" required>
<input type="submit" value="Envoyer">

有关详细信息,请参阅 skipper 的文档:https://github.com/balderdashy/skipper#text-parameters