我正在尝试将文件上传到 Cloud Functions,使用 Express 处理那里的请求,但我没有成功。我创建了一个在本地工作的版本:
服务器端js
const express = require('express');
const cors = require('cors');
const fileUpload = require('express-fileupload');
const app = express();
app.use(fileUpload());
app.use(cors());
app.post('/upload', (req, res) => {
res.send('files: ' + Object.keys(req.files).join(', '));
});
客户端js
const formData = new FormData();
Array.from(this.$refs.fileSelect.files).forEach((file, index) => {
formData.append('sample' + index, file, 'sample');
});
axios.post(
url,
formData,
{
headers: { 'Content-Type': 'multipart/form-data' },
}
);
这个完全相同的代码在部署到 Cloud Functions 时似乎会中断,其中 req.files 未定义。有谁知道这里发生了什么?
编辑
我也multer
尝试了 using ,它在本地运行良好,但是一旦上传到 Cloud Functions,这给了我一个空数组(相同的客户端代码):
const app = express();
const upload = multer();
app.use(cors());
app.post('/upload', upload.any(), (req, res) => {
res.send(JSON.stringify(req.files));
});