无法使用 Node.js 中的请求模块传输大文件
Unable to transfer large size file using request module in Node.js
在一个 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_'+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));
我发送数据的PHP端代码如下:
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 服务器上上传文件,我知道互联网上有答案但在我的情况下,我必须使用 request
模块从 Node.js 传输文件到PHP 服务器。
如果文件较小,它可以正常工作,但如果 CSV 文件较大,则无法正常工作。
我注意到的一件事是,如果文件很大,那么 php 端的 if (!empty($_FILES)){}
就会失败。所以我认为 PHP 方面没有问题。请建议我应该在那里修改什么?
问题是在PHP这边。 The default upload_max_filesize
configuration value for PHP is 2MB。您需要增加该值才能接受更大的文件上传。
我同意 mscdex 问题出在 PHP 方面。将 upload_max_filesize
从 2MB 增加到 50MB 后它不起作用,直到那时我再次重新启动了 Apache 服务器。
重新启动 Apache 服务器后,它开始正常工作。
在一个 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_'+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));
我发送数据的PHP端代码如下:
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 服务器上上传文件,我知道互联网上有答案但在我的情况下,我必须使用 request
模块从 Node.js 传输文件到PHP 服务器。
如果文件较小,它可以正常工作,但如果 CSV 文件较大,则无法正常工作。
我注意到的一件事是,如果文件很大,那么 php 端的 if (!empty($_FILES)){}
就会失败。所以我认为 PHP 方面没有问题。请建议我应该在那里修改什么?
问题是在PHP这边。 The default upload_max_filesize
configuration value for PHP is 2MB。您需要增加该值才能接受更大的文件上传。
我同意 mscdex 问题出在 PHP 方面。将 upload_max_filesize
从 2MB 增加到 50MB 后它不起作用,直到那时我再次重新启动了 Apache 服务器。
重新启动 Apache 服务器后,它开始正常工作。