最近,我在发布表单时遇到了一个不寻常的问题。如果没有附件或附件图像文件大小小于100kb,表单帖子可以正常工作。但是当我尝试上传大于100kb的文件时,表单中没有任何元素被发布/提交。当我console.log()
时,它给出的值未定义。我无法理解导致问题的原因。控制台屏幕上不显示任何错误。任何人都可以帮忙解决这个问题吗?
var name = req.param('name');
console.log(name);
我得到的结果是undefined
。
我在Windows 8.1上使用sails v0.10.5。我使用postgres作为我的数据库。
答案 0 :(得分:8)
使用skipper,您必须将所有输入文件放在表单的末尾。 否则它可能会出错。
答案 1 :(得分:3)
有同样的问题,结果是输入的顺序很重要,请点击github skipper页面
重要的是要意识到上面的好处(文本参数)依赖于一个关键的,简化的假设:用户代理在多部分HTTP请求体中的第一个文件参数之前发送任何文本参数。例如,在HTML表单中,这意味着将所有标记放在其他输入之后。如果您不希望以这种方式打印表单,则需要使用AJAX来提交它
答案 2 :(得分:2)
req.param
方法用于获取url参数,body参数和查询参数。 (reference)
如果您使用multipart/form-data
上传文件,Sails会使用 skipper 来解析数据,您只需获取如下文件
req.file('name').upload(function (err, uploadedFiles){
if (err) return res.send(500, err);
return res.send(200, uploadedFiles);
});
答案 3 :(得分:1)
更好地使用blueimp jquery文件上传插件..它有多种功能可以帮助你。
答案 4 :(得分:0)
我建议您从风帆中查看官方文件上传文档....
http://sailsjs.org/#!/documentation/concepts/File-Uploads
我按照步骤操作,它适用于我(在风帆v 0.11)。也许你错过了一路上的东西?