Javascript 无法使用Node.js中的请求模块传输大文件
在Node.js项目中,我必须将文件从计算机传输到服务器。如果文件大小很小,即2mb,我可以发送文件,但如果超过此大小,则无法发送文件。以下是我的代码:Javascript 无法使用Node.js中的请求模块传输大文件,javascript,php,node.js,node-request,filestreams,Javascript,Php,Node.js,Node Request,Filestreams,在Node.js项目中,我必须将文件从计算机传输到服务器。如果文件大小很小,即2mb,我可以发送文件,但如果超过此大小,则无法发送文件。以下是我的代码: var url1 = 'http://beta.xxxxx.com/Xbox/xxxx/index.php/info/xxxxx'; var csvenriched = APPDATApath+'/xxxx/users/'+userId+'/programs/'+programName+'/'+foldername+'/Data_'+tmpst
var url1 = 'http://beta.xxxxx.com/Xbox/xxxx/index.php/info/xxxxx';
var csvenriched = APPDATApath+'/xxxx/users/'+userId+'/programs/'+programName+'/'+foldername+'/Data_'+tmpstmp+'.csv';
var req = request.post(url1, function (err, resp, body1) {
if (err) {
console.log('REQUEST RESULTS:'+err+resp.statusCode+body1);
res.send(err); return false;
} else {
res.send(body1); return false;
}
});
var form = req.form();
form.append('file', fs.createReadStream(csvenriched));
public function actionSavetestvideo() {
if (!empty($_FILES)) {
$path = Yii::$app->basePath.'/testfiles/'.$_FILES['file']['name'];
if (move_uploaded_file($_FILES['file']['tmp_name'], $path)) {
return 'uploaded';
} else {
return 'error'.$_FILES["file"]["error"];
}
} else {
return $_FILES;
}
}
在我发送数据代码的PHP端,如下所示:
var url1 = 'http://beta.xxxxx.com/Xbox/xxxx/index.php/info/xxxxx';
var csvenriched = APPDATApath+'/xxxx/users/'+userId+'/programs/'+programName+'/'+foldername+'/Data_'+tmpstmp+'.csv';
var req = request.post(url1, function (err, resp, body1) {
if (err) {
console.log('REQUEST RESULTS:'+err+resp.statusCode+body1);
res.send(err); return false;
} else {
res.send(body1); return false;
}
});
var form = req.form();
form.append('file', fs.createReadStream(csvenriched));
public function actionSavetestvideo() {
if (!empty($_FILES)) {
$path = Yii::$app->basePath.'/testfiles/'.$_FILES['file']['name'];
if (move_uploaded_file($_FILES['file']['tmp_name'], $path)) {
return 'uploaded';
} else {
return 'error'.$_FILES["file"]["error"];
}
} else {
return $_FILES;
}
}
我知道,如果我必须在Node.js服务器上上传文件,互联网上会有答案,但在我的情况下,我必须使用请求
模块将文件从Node.js传输到PHP服务器
如果文件大小很小,但如果CSV文件大小很大,则可以正常工作
我注意到的一件事是,如果文件大小很大,那么php端的
if(!empty($\u FILES)){}
就失败了。所以我认为PHP方面没有问题。请建议我应该在那里修改什么?问题出在PHP方面。您需要增加该值以接受更大的文件上载。问题在于PHP方面。您需要增加该值以接受更大的文件上载。我同意mscdex的说法,问题在于PHP方面。在将upload\u max\u filesize
从2MB增加到50MB之后,它就不工作了,直到那时我才重新启动Apache服务器
重新启动Apache服务器时,它开始工作正常。我同意mscdex的说法,问题出在PHP方面。在将
upload\u max\u filesize
从2MB增加到50MB之后,它就不工作了,直到那时我才重新启动Apache服务器
重新启动Apache服务器时,它会正常工作。您确定吗??在app.use(express.limit(100000))中;这是我们在同一台服务器上上传文件的方式。但在我的情况下,要求是不同的,所以我怀疑它应该在节点js端,因为在PHP上,上传的大小是50mb。您是如何验证PHP限制的?在
actionSavetestvideo()
函数中,您是否尝试将ini_get(“upload_max_filesize”)
的结果输出到某处?我已再次保存并重新启动服务器。重新启动服务器,然后工作。谢谢你的帮助^ ^你确定吗?在app.use中使用(express.limit(100000));这是我们在同一台服务器上上传文件的方式。但在我的情况下,要求是不同的,所以我怀疑它应该在节点js端,因为在PHP上,上传的大小是50mb。您是如何验证PHP限制的?在actionSavetestvideo()
函数中,您是否尝试将ini_get(“upload_max_filesize”)
的结果输出到某处?我已再次保存并重新启动服务器。重新启动服务器,然后工作。谢谢你的帮助^ ^ ^看起来,尽管另一张海报给了你答案,但你转发了同样的东西,并给自己打了勾。你会考虑给予另一张海报可以接受的吗?@ HalFER在实际操作中只有在重启之后才能看到其他帖子的编辑历史,我已经发布了,但是MSCDEX拒绝了我的编辑。所以我发布了新的答案。连我都对他的答案投了赞成票。。好。。谢谢你访问我的个人资料:)啊,是的,我发现了这个细微的差别。通常情况下,出于堆栈溢出的精神,不管怎样,都会给出勾号,但是如果其他海报拒绝了您的编辑,那么就可以了。在我看来,他们不应该拒绝编辑,这很好。看起来,尽管另一张海报给了你答案,但你转发了同样的内容,并给自己打了勾。你会考虑给予另一张海报可以接受的吗?@ HalFER在实际操作中只有在重启之后才能看到其他帖子的编辑历史,我已经发布了,但是MSCDEX拒绝了我的编辑。所以我发布了新的答案。连我都对他的答案投了赞成票。。好。。谢谢你访问我的个人资料:)啊,是的,我发现了这个细微的差别。通常情况下,出于堆栈溢出的精神,不管怎样,都会给出勾号,但是如果其他海报拒绝了您的编辑,那么就可以了。在我看来,他们不应该拒绝这一编辑——这很好。