有沒有辦法可以為發送到服務器的每個檔案附加一些內容?
現在,我正在使用以下代碼
const formData = new FormData();
files.forEach((file) => {
formData.append('files[]', file);
});
這是表單提交方法的一部分,現在,每個檔案都可以有一些描述。有什么方法可以將附加資料添加到檔案中并以相同的表單資料處理它,而無需為每個檔案發送單獨的請求?
在服務器上,我multer用來訪問這些檔案。也許還有其他東西不是FormData可以發送檔案的地方
uj5u.com熱心網友回復:
您不需要發送單獨的請求來發送檔案標題。您可以發送 2 個相同大小的陣列并同時決議這兩個陣列,從一個陣列獲取檔案,從另一個陣列獲取標題
const upload = async () => {
try {
const file = fs.createReadStream('./myfile.txt');
const title = 'My file';
const form = new FormData();
form.append('title', title);
form.append('file', file);
const resp = await axios.post('http://localhost:3000/upload', form, {
headers: {
...form.getHeaders(),
}
});
if (resp.status === 200) {
return 'Upload complete';
}
} catch(err) {
return new Error(err.message);
}
}
upload().then(resp => console.log(resp));
另一方面,您可以通過以下方式提取它
var express = require('express');
var router = express.Router();
const multer = require('multer');
const upload = multer({ dest: os.tmpdir() });
router.post('/upload', upload.single('file'), function(req, res) {
const title = req.body.title;
const file = req.file;
console.log(title);
console.log(file);
res.sendStatus(200);
});
module.exports = router;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/460220.html
標籤:javascript 节点.js
上一篇:掛載的生命周期鉤子中的異步等待
