3

背景: node.js と Express を使用して、画像が添付された POST 要求を受け入れる Web サービスを作成しようとしています。

リクエストは無事送信できましたが、画像を何とかしたいです。私が見たすべての例では、フォームを使用して POST を使用してファイルをアップロードし、アップロードするファイルに名前を付けることができます。次のことを許可する

app.post('/upload',function(req,res) {
    req.files.formName // have access to the file's information
}

RESTのような方法でPOSTリクエストを作成できるようにしたいので、ファイルはAPI呼び出しを介してアップロードされるため、ファイルがサーバーに到達すると、エクスプレスはランダムな名前とファイルにアクセスする方法を与えますfiles 配列は、実際の写真のファイル名を使用することです。これは、ユーザーのファイル名に依存し、その定数にすることはできません。

app.post('/upload',function(req,res) {
    req.files.<what goes here>
    req.files[0] // this wont work
}

あなたの助けに感謝します。私がこれを間違った方法で行っている場合、エクスプレスを使用するのは悪い選択だと言ってから、先に進んで提案してください. 私はこのプロジェクトを実行して、node.js の使用方法とそのすべての利点を学びます。

4

3 に答える 3

1

それは今でも同じように機能します。

REST のような方法で POST を送信している場合でも、API 呼び出しでパラメーターに名前を付ける必要があります。

たとえば、画像に「image」という名前を付けた場合。

var data = {"image":imageData};

アクセスするにはまだ

req.files.image
于 2013-03-01T07:06:46.787 に答える
0

生の HTTP 本文にアクセスする場合:

app.post('/upload', function(req, res) {
  var chunks = '';
  req.on('data', function(data) {
    chunks += data;
  });
  req.on('end', function() {
    console.log('received', chunks.length, 'bytes', chunks);
    res.send(...);
  });
});

(併用する必要がある場合は、上記のルートを設定した後express.bodyParser確認してください)app.use()

于 2013-03-01T07:12:52.953 に答える
0

簡単なアップロードの場合は、次の構成が必要です。

app.use(express.static(__dirname + '/upload'));
app.use(express.bodyParser({uploadDir:__dirname + '/upload'}));

と翡翠のテンプレートで:

form(method='post', action='/upload', enctype='multipart/form-data')
    input(name='file', type='file')
    input(type='submit')
于 2013-04-30T12:18:47.353 に答える