前端用FormData将对象变成二进制流
时间: 2024-05-02 09:17:48 浏览: 167
前端可以使用FormData对象将对象转换为二进制流。FormData是一种表单数据对象,可以使用XMLHttpRequest发送表单数据。
以下是将对象转换为FormData对象的示例:
```javascript
let formData = new FormData();
let obj = {name: 'John', age: 30};
for (let key in obj) {
formData.append(key, obj[key]);
}
```
这将创建一个FormData对象,并将对象的每个键-值对添加到其中。现在可以使用XMLHttpRequest将FormData对象发送到服务器。
```javascript
let xhr = new XMLHttpRequest();
xhr.open('POST', 'http://example.com/upload');
xhr.send(formData);
```
在服务器端,可以使用类似以下的代码来处理FormData对象:
```javascript
const formidable = require('formidable');
const http = require('http');
http.createServer(function(req, res) {
if (req.url == '/upload') {
let form = new formidable.IncomingForm();
form.parse(req, function(err, fields, files) {
res.writeHead(200, {'content-type': 'text/plain'});
res.write('received upload:\n\n');
res.end(JSON.stringify({fields: fields, files: files}));
});
return;
}
// show a file upload form
res.writeHead(200, {'content-type': 'text/html'});
res.end(
'<form action="/upload" enctype="multipart/form-data" method="post">' +
'<input type="text" name="name"><br>' +
'<input type="file" name="file"><br>' +
'<input type="submit" value="Upload">' +
'</form>'
);
}).listen(8080);
```
这个示例使用了Node.js的formidable模块来解析FormData对象,并将结果作为JSON字符串发送回客户端。
阅读全文