0

私はこのコードを持っています:

http.createServer(function (req, res) {
  if (req.method.toLowerCase() === "post") {
    res.writeHead(200);
    req.on('data', function (data) {
      console.log(data.toString());
    });
    res.end();
  }
}).listen(8006);

のようなcurlコマンドを使用してファイルをアップロードしようとすると、ファイルcurl http://localhost:8006/upload -X POST -F file=@filetoupload.txtの名前とファイルの内容が出力されます。この場合は次のようになります。

------------------------------5d02ba973600
Content-Disposition: form-data; name="file"; filename="filetoupload.txt"
Content-Type: text/plain


<!-- start slipsum code -->

Do you see any Teletubbies in here? Do you see a slender
plastic tag clipped to my shirt with my name printed on
it? Do you see a little Asian child with a blank expression
on his face sitting outside on a mechanical helicopter that
shakes when you put quarters in it? No? Well, that's what
you see at a toy store. And you must think you're in a
toy store, because you're here shopping for an infant
named Jeb.

<!-- end slipsum code -->


------------------------------5d02ba973600--

ここで問題は、ファイル名の値とファイルの内容をキャッチするための良い方法はありますか?または、上記のコンテンツの値を抽出するために、ある種の正規表現ブードゥーを取得する必要がありますか?

エクスプレスのようなサードパーティのモジュールなしでこれを実行したいのですが、最初はこれがどのように機能するかを学びたいので、次にエクスプレスのbodyParser()はすべてのファイルをディスクに保存し、次に手ごわいような他のモジュールはディスクから読み取る必要があるためです、そして私は、最初にディスクに保存することなく、ファイルのアップロードを直接RackspaceCloudFilesにパイプするものを作成しようとしています。

4

2 に答える 2

1

Formidable(Connect、したがってExpressがファイルのアップロードの処理に使用する)のコードを読み、それを開始点として使用して、好ましくない動作(ディスクへの保存など)を変更します。

于 2012-06-09T03:23:31.660 に答える
1

http://www.componentix.com/blog/13/file-uploads-using-nodejs-once-againを見てください。これで、ファイルのアップロードを開始できます。

于 2012-06-09T14:09:13.287 に答える