我正在使用jQuery表单插件
和multer
来上传文件到我的服务器。这个功能很好用,但是我想传递一个额外的参数,以确定文件将被保存在哪里。
我有以下代码,我想扩展功能以满足要求:
HTML
<form id="uploadForm"
enctype="multipart/form-data"
action="/files"
method="post">
<input type="file" id="userFile" name="userFile"/>
<input type="text" hidden id="savePath" name="savePath" value="path"/>
</form>
客户端JS
uploadForm.submit(function() {
$(this).ajaxSubmit({
error: function(xhr) {
console.log('Error: ' + xhr.status);
},
success: function(response) {
console.log('Success: ' + response);
}
});
return false;
});
Node.js 路由
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");
});
});
注意: 我知道我现在没有检查MIME类型或对用户文件进行清理,但对我来说主要是次要的。
req.body
中获取savePath
。 - stdob--userFile
对象,无论我尝试了多少次,savePath
从未出现在req.body
中。 - Clemens Himmer