2017-02-16 4 views
0

Node.jsプロジェクトでは、コンピュータからサーバーにファイルを転送する必要があります。ファイルサイズが小さい、つまり2MBだが、このサイズを超えるファイルを送信できない場合はファイルを送信できます。次のようにここに私のコードは次のとおりです。次のようにNode.jsのリクエストモジュールを使用して大きなサイズのファイルを転送できません

私はデータコードを送信しています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のrequestモジュールを使ってファイルをPHPサーバーに転送する必要があります。

ファイルサイズが小さい場合はうまく動作しますが、CSVファイルサイズが大きい場合はうまく動作しません。

ファイルサイズが大きいと、PHP側のif (!empty($_FILES)){}が失敗したことに私が気づいたことがあります。だから私はPHP側に問題があるとは思わない。私はそこで何を修正すべきかを提案してください。

答えて

0

私はmscdexとPHPの面で問題が合意しました。 upload_max_filesizeを2MBから50MBに増やした後、動作していませんでした。それまではApache Serverを再起動しました。

オンApacheサーバーを再起動すると、完全に動作します。

+0

他のポスターが答えをくれましたが、あなたは同じことを再転記して自分自身に刻み目を与えました。あなたはそれを他のポスターに受け入れてもらえると思いますか? – halfer

+0

@halfer実際には、他の投稿の編集履歴が表示される場合は再起動後にのみ機能しますが、mscdexは編集を拒否しました。だから私は新しい答えを投稿しました。私は彼の答えをupvotedしています。 ..ウェル..私のプロフィールを訪問してくれてありがとう:) – Deep

+0

ああ、私はその小さな違いを発見した。とにかく目立たないようにスタックオーバーフローの精神に従いますが、他のポスターがあなたの編集を拒否したらOKです。私の意見では編集を拒否してはいけませんでした。 – halfer

1

問題は、PHP側でです。 The default upload_max_filesize configuration value for PHP is 2MB。大きなファイルアップロードを受け入れるには、その値を大きくする必要があります。

+0

あなたは本当ですか? – Deep

+0

app.use(express.limit(100000));これは、同じサーバーにファイルをアップロードする場合の方法です。しかし、私のケースでは要件が異なるので、ノードjs側にあることが疑わしいのですが、PHPではアップロードのために50MBのサイズです – Deep

+0

PHPの制限をどのように確認しましたか?あなたの 'actionSavetestvideo()'関数では、 'ini_get(" upload_max_filesize ")'の結果をどこかに出力しようとしましたか? – mscdex

関連する問題