在Node.js項目中,我必須將文件從計算機傳輸到服務器。如果文件大小很小(即2mb),我可以發送文件,但如果文件大於此大小,則無法發送文件。這裏是我的代碼如下:無法使用Node.js中的請求模塊傳輸大型文件
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方面存在問題。請建議我應該在那裏修改什麼?
看來,儘管另一張海報給了你答案,但你轉發了同樣的東西,並且給自己打了勾。你會考慮給另一張海報接受嗎? – halfer
@halfer實際上它只在重啓之後才起作用,如果你會看到其他帖子的編輯歷史,我已經發布了,但mscdex拒絕了我的編輯。所以我發佈了新的答案。即使我已經提出了他的答案。 ..well ..感謝您訪問我的個人資料:) – Deep
啊,是的,我發現了微小的差異。通常情況下,堆棧溢出的精神無論如何都會讓滴答聲消失,但是如果其他海報拒絕了編輯,那麼確定。在我看來,他們不應該拒絕編輯,這很好。 – halfer