Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.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 上传文件Angular.js FormData_Javascript_Node.js_Angularjs - Fatal编程技术网

Javascript 上传文件Angular.js FormData

Javascript 上传文件Angular.js FormData,javascript,node.js,angularjs,Javascript,Node.js,Angularjs,我正在将带有Angular的文件上载到我的节点服务器。有时图像没有上传,我在服务器端得到req.files“undefined”,我不知道为什么。我认为这与图像的重量无关:上传的图像大约是48KB,而不是16KB。我附加了两个快照来显示一个可用的快照和另一个可用的快照(ChromeDeveloper工具的网络选项卡)在时间上的差异(HTTPPOST)。我可以看到,“时间”(“阻塞”、“发送”)与失败的时间没有重叠。也许这就是问题所在。。。但我不知道如何修复它 我明白了 我在服务器端使用带有延迟

我正在将带有Angular的文件上载到我的节点服务器。有时图像没有上传,我在服务器端得到req.files“undefined”,我不知道为什么。我认为这与图像的重量无关:上传的图像大约是48KB,而不是16KB。我附加了两个快照来显示一个可用的快照和另一个可用的快照(ChromeDeveloper工具的网络选项卡)在时间上的差异(HTTPPOST)。我可以看到,“时间”(“阻塞”、“发送”)与失败的时间没有重叠。也许这就是问题所在。。。但我不知道如何修复它

我明白了

我在服务器端使用带有延迟选项“express.multipart({defer:true})”的express.multipart

因此,有时执行到达代码,我管理post请求以获取带有“req.files.file”的图像,然后在express.multipart模块中触发表单的“end”事件,其中模块设置req.files:

form.on('end',function(){
如果(完成)返回;
试一试{
req.body=qs.parse(数据);
**req.files=qs.parse(文件)**
如果(!options.defer)next();
}捕捉(错误){
form.emit('error',err);
}
});

所以有时候req.files.file=未定义,只是因为尚未设置

摆脱{defer:true}选项解决了我的问题。与一个或另一个图像无关

这里是express.multipart模块中“延期”选项的单据:

“延迟处理并将强大的表单对象公开为
req.form
。 *调用
next()
,无需等待表单的“end”事件。
*例如,如果您需要绑定到“progress”事件,此选项非常有用。“

如果您至少没有看到服务器端代码,我们就无法真正帮助您。它会出现在iOS8上吗?因为目前有一个关于文件上传和FormData的bug。