2016-07-11 7 views
0

私は私のC++プロジェクト(https://github.com/Zintinio/HappyHTTPのlibへのリンク)にHappyHTTPと呼ばれる簡単なライブラリを使用していると1つのファイルをアップロードします。次のようにC++:私は私のnodejsサーバーにファイルを送信したい</p> <p>:httpリクエスト

私のjavascriptのコードは次のとおりです。

var multer = require('multer'); 
    var upload = multer({ dest: 'uploads/' }); 
    router.post('/dicomPost',upload.single('dicom'),function (req,res) { 


    res.send(200); 

}) 

をし、これが私のC++コードです:私は身体データを送信することができ、私のC++側から

   happyhttp::Connection conn("127.0.0.1", 3000); 
      conn.setcallbacks(OnBegin, OnData, OnComplete, 0); 
      conn.putrequest("POST", "/dicomPost"); 
      conn.putheader("Connection", "close"); 
      conn.putheader("Content-Length", l); 
      conn.putheader("Content-type", "multipart/form-data"); 
      conn.putheader("Content-Disposition","name=dicom; filename=test.txt"); 
      conn.putheader("Accept", "text/plain"); 
      conn.endheaders(); 

      while(conn.outstanding()) 
       conn.pump(); 

それがファイルに来るとき、私は500 Internal Server Errorを取得しています)、上記のgithubリンクを誰かが見て、私のコードがうまくいかない理由を見てください。私はlibcurlを使いたくないので、LightHheightライブラリを使ってHappyHttpとして投稿したいだけです。

ありがとうございます。

+0

私はまだライブラリの例を見ていませんが、あなたがアップロードするファイルをlibに伝えていないと私は思います。確かに、あなたは、httpクライアントにファイルが呼び出されたことを伝えるようライブラリに依頼していますが、ライブラリがファイル名を含む文字列を解析してファイルを開き、その後それを提供すると驚くでしょう。 'conn.endheaders()'の直後に、whileループの前にコードをいくつか追加したいと思います。実際には、 'send'メソッドを使ってデータを送信する前に、ファイルを読み込んでバッファリングする必要があります。そのドキュメントの: – enhzflep

答えて

0

問題はサーバー側で発生するため、サーバーログを調べて、そこに手掛かりがないかどうかを確認してください。私の推測では、あなたのjavascriptがそこにファイルを書くのを妨げているuploadsフォルダのアクセス許可の問題になるでしょう。

関連する問題