注意:私はバニラノードでこれを行います。ファイルのサイズを取得し、アップロードしてPOSTリクエストします。
input type="file"
HTMLタグを含むファイルをアップロードしたいのですが、同じフォーム要素に送信ボタンinput type="submit"
を押して、POSTリクエストを送信するとファイルのサイズがバイト単位で取得されます。次のような
注意:私はバニラノードでこれを行います。ファイルのサイズを取得し、アップロードしてPOSTリクエストします。
input type="file"
HTMLタグを含むファイルをアップロードしたいのですが、同じフォーム要素に送信ボタンinput type="submit"
を押して、POSTリクエストを送信するとファイルのサイズがバイト単位で取得されます。次のような
何かが動作するはず
ありがとう:
var http = require('http');
var server = http.createServer(function(req, res) {
switch (req.url) {
case '/':
display_form(req, res);
break;
case '/upload':
show_bytes(req, res);
break;
default:
res.writeHead(404, {'content-Type': 'text/plain'});
res.write('not found');
res.end();
break;
}
});
server.listen(3000);
function display_form(req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(
'<form action="/upload" method="post" enctype="multipart/form-data">'+
'<input type="file" name="upload">'+
'<input type="submit" value="Submit">'+
'</form>'
);
res.end();
}
function show_bytes(req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.write(req.headers['content-length'] + ' bytes');
res.end();
}
これは機能しますが、バイトサイズはわずかにオフです。実際のサイズよりもやや大きめです。何故ですか? – JohnSnow
この@dNitroに関するアイデア – JohnSnow
@ JohnNoob、私はそれに気づいていませんでしたが、本当に〜230バイトのオーバーヘッドを実際のサイズに追加するたびに見えます。通常、** content-length **ヘッダーは受信ボディーのサイズと同じでなければなりません。たぶんそのチャンク*エンコーディングのために?私は本当に分かりません。あなたは新しい質問と考えてもいいかもしれません。誰かが私たちを助けてくれるかもしれません。 – dNitro
あなたはまだ何を試してみました!? – dNitro
純粋なNode.jsでこれをどうやって行うのか分かりません。そのため、私はあなた自身のような専門家に質問しました。 – JohnSnow
誰も知っていますか? – JohnSnow