Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.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 无法使用Node.js中的请求模块传输大文件_Javascript_Php_Node.js_Node Request_Filestreams - Fatal编程技术网

Javascript 无法使用Node.js中的请求模块传输大文件

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

在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));
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拒绝了我的编辑。所以我发布了新的答案。连我都对他的答案投了赞成票。。好。。谢谢你访问我的个人资料:)啊,是的,我发现了这个细微的差别。通常情况下,出于堆栈溢出的精神,不管怎样,都会给出勾号,但是如果其他海报拒绝了您的编辑,那么就可以了。在我看来,他们不应该拒绝这一编辑——这很好。