请注意:我想使用纯 Node.js 完成此操作。
我想使用 HTML 标签中的
谢谢。
我想使用 HTML 标签中的
input type="file"
上传文件,并在同一表单元素中点击提交按钮 input type="submit"
,然后在提交 POST 请求时获取文件大小(以字节为单位)。谢谢。
input type="file"
上传文件,并在同一表单元素中点击提交按钮 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();
}
content-length
是整个请求(标题,其他表单字段等)的大小。 我不确定是否有一种方法可以在文件数据被流式传输到服务器之前获取上传文件的大小-您可以按照它们的字节计算每个文件的大小。 像[busboy]这样的工具可以帮助您解决此问题。 (https://www.npmjs.com/package/busboy) - Ryan Wheale