Blob对象如何正确设置Content-Type?
时间: 2024-10-02 15:01:06 浏览: 29
Blob对象本身并不直接设置Content-Type,因为这通常是服务器端的事情。当你要发送一个包含Excel文件的HTTP响应时,在Node.js中你可以这样做:
```javascript
const fs = require('fs');
const express = require('express');
const app = express();
// 假设你有一个名为file.xlsx的Excel文件
app.get('/download', async (req, res) => {
try {
const fileStream = fs.createReadStream(path.join(__dirname, 'file.xlsx'));
// 设置正确的Content-Type和Content-Disposition头
res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
res.setHeader('Content-Disposition', 'attachment; filename="file.xlsx"');
fileStream.pipe(res); // 直接从流中发送文件
} catch (err) {
console.error(err);
res.status(500).send('Error occurred while serving the file.');
}
});
```
在浏览器端,Blob对象通常会由服务器返回的响应自动关联到Content-Type,但如果需要自定义,可以在前端的fetch或XMLHttpRequest请求中手动设置。
阅读全文