Здравствуйте!
Пытаюсь выполнить загрузку файлов с помощью multer.
Однако, если имя содержит unicode-символы, то оно читается некорректно.
В Postman всё работает, проблема только если отправлять через браузер.
С содержимым файлов проблем нет, только с названием.
Подскажите, пожалуйста, в чём может быть проблема?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form
action="<%= locals.id?'/form1':'/form' %>"
method="post"
style="
display: grid;
gap: 0.5rem;
grid-template-columns: auto 1fr;
max-width: 500px;
margin: 0 auto;
"
enctype="multipart/form-data"
accept-charset='utf-8'
>
<input type="file" name="avatar" />
<button style="grid-column: span 2;" type="submit">Отправить</button>
</form>
</body>
</html>
import express from "express";
import dotenv from "dotenv";
//читаем env
dotenv.config()
import multer from "multer";
const app = express();
app.use(express.urlencoded({extended:true}))
app.use(express.json());
app.set("view engine","ejs")
//подключаем загрузчик файлов
const upload = multer({ dest: 'uploads/' })
app.get("/:id?", async (req,res,next)=>{
res.render("index",{id:req.params.id});
})
app.post("/form", upload.fields([{ name: 'avatar', maxCount: 1 }]), async (req: any,res:any,next:any)=>{
res.set({ 'content-type': 'application/json; charset=utf-8' });
res.send(req.files['avatar']? req.files['avatar'][0].originalname.toString('latin1') : 'Ошибка');
})
app.listen(process.env.PORT, async ()=>{
console.log("Server start at "+process.env.PORT)
})
{
"name": "code",
"version": "1.0.0",
"description": "",
"main": "server.ts",
"scripts": {
"dev": "nodemon server.ts"
},
"author": "",
"license": "ISC",
"dependencies": {
"dotenv": "^16.0.1",
"ejs": "^3.1.8",
"express": "^4.18.1",
"multer": "^1.4.5-lts.1",
"nodemon": "^2.0.18"
},
"devDependencies": {
"@types/express": "^4.17.13",
"@types/multer": "^1.4.7",
"ts-node": "^10.8.1",
"typescript": "^4.7.4"
}
}