node.js实现上传文件
时间: 2023-09-09 20:07:14 浏览: 158
下面是一个使用 Node.js 实现文件上传的示例代码:
```javascript
const http = require('http');
const formidable = require('formidable');
http.createServer(function(req, res) {
if (req.url == '/upload' && req.method.toLowerCase() == 'post') {
// 创建表单解析器
const form = new formidable.IncomingForm();
// 设置文件上传目录
form.uploadDir = './uploads';
// 限制上传文件大小为2MB
form.maxFileSize = 2 * 1024 * 1024;
// 解析表单数据
form.parse(req, function(err, fields, files) {
if (err) throw err;
// 文件上传成功,返回上传成功的信息
res.writeHead(200, {'Content-Type': 'text/plain'});
res.write('File uploaded successfully\n\n');
res.end(JSON.stringify({fields: fields, files: files}));
});
return;
}
// 返回文件上传表单
res.writeHead(200, {'Content-Type': 'text/html'});
res.end(`
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file"><br>
<input type="submit" value="Upload">
</form>
`);
}).listen(8080);
```
这段代码使用了 Node.js 内置的 HTTP 模块和第三方模块 `formidable` 来处理文件上传。在访问 `http://localhost:8080` 时,会展示一个包含文件上传表单的页面。当用户在表单中选择文件并提交时,服务器会将文件保存在指定的目录下,并返回上传成功的信息。
阅读全文